전체 글

공부와 경험의 기록!
·Algorithm (PS)
유형 : 구현 그치 딱 봐도 구현 문제이다.. 그런데 처음에 문제를 이해하는데 '균형 잡힌 괄호 문자열' 이랑 '올바른 괄호 문자열' 이 헷갈렸다 ㅋㅋㅋ 문제 풀이의 핵심은 무엇일까 재귀함수를 적절히 만들어 주어야 한다 !!!!! 당연한 소리지만 -_- 1. 균형 잡힌 괄호 문자열이 p의 어느 인덱스 까지인지 반환해주는 함수 구현 2. 현재 문자열이 올바르괄호 문자열인지 아닌지 구하는 함수 구현하기 3. 재귀 함수로 호출할 solution(p) 부분 구현하기 def balance(p): count = 0 for i in range(len(p)): if p[i] == '(': count += 1 else: count -= 1 if count == 0: return i def check(p): count =..
·Algorithm (PS)
유형 : DFS/BFS 1. 바이러스의 종류는 1 ~ K 로, K 개이다. 이 문제를 풀 때 바이러스가 상 하 좌 우 로 번식한다고 하니 dfs / bfs로 이동하는걸 떠올렸다. 그런데 나는 처음에 풀 때 dfs라고 생각했다 그런데 계속 재귀 호출 에러가 났다. 이 문제는 bfs로 풀어야 한다. 왜...? 왜일까 bfs로 풀면 바이러스를 오름차순으로 정렬한다음에, 탐색할 수 있다 !!! 풀이를 정리해 보면 1. graph 를 생성 ! 정보를 받을 때 0초로 초기화 해서 저장한다. 이 문제의 특징은 s초가 지난 후의 x,y 좌표에 존재하는 바이러스 타입이 무엇인지 묻는 것이기 때문에 초 정보도 저장하는 것이 좋다. 2. 오름차순으로 바이러스 정렬 3. bfs 실행 # 경쟁적 전염 from collectio..
·Algorithm (PS)
https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 문제 유형 : 구현 + dfs 문제집에는 dfs로 분류되어 있었는데 구현 유형스러웠던 문제 ㅋㅋ 1. 벽을 설치한다 3개까지 -> board 2차원 배열 돌면서 board[i][j] == 0 이면 벽 설치 가능 2. 3개 다 설치했으면 바이러스를 퍼뜨려 본다. 바이러스 퍼뜨릴 때 재귀호출해서 상하좌우 이동한다. 3. 바이러스를 퍼뜨린 후 안전지대를 계산한다.그리고 원래 가지고 있던 최대 안전지대 값이랑 비교하..
·Algorithm (PS)
https://programmers.co.kr/learn/courses/30/lessons/60062 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하 programmers.co.kr 1. 원형을 선형으로 생각해보자 , weak의 길이를 두배로 늘려서 선형으로 생각한다. 2. 친구들을 배치해야한다. -> 파이썬에서는 순열 조합을 permutations 함수로 구현할 수 있다. 친구들을 배치하는 방법을 모두 구한다음에 완전탐색으로 필요한 친구의 최소 값을 구한다. dist의 길이가 1이상 8 이하이고 8! = 약 4만 정도이므로 완전탐색으로 풀..
·Algorithm (PS)
문제 링크 : https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 도시에 있는 치킨집 중에서 최대 M 개를 골랐을 때, 도시의 치킨 거리를 구하는 문제이다. 치킨집들 중에서 M 개를 고르는 경우를 구할때 파이썬의 조합 라이브러리를 이용하면 이 문제는 생각보다 쉽게 풀 수 있다 (!) itertools의 combination을 사용한다 풀이 과정은 다음과 같다 1. data 입력을 받는다 2. for 문으로 data 입력 받을 ..
IMU senser의 특징 * Dead reckoning : The process of calculating current position of some moving object by using a previously determined position ex. Accelerometer & Gyroscope 가속도와 각속도를 이용해서 현재의 위치를 계산한다 ! -> 계산하는 방법 다시 강의듣기 ㅠㅠ * Non-dead reckoning example : The process of calculating current position of some moving object independently of a previously determined position -> ex. GPS & Magnetometers ..
ㄷㄷ 와 대체 C언어를 4학년때 다시 하는데 왜이렇게 깨닫는게 많은지 대박 이걸 몰랐네 왕신기하다 ! 하는 모먼트들이 종종 있다 ㅋㅋㅋㅋ int main(int argc, const char * argv[]) { int score[] = {77,88,99}; for (int i = 0; i < 3; i++) { printf("%2d %10u %6d \n", i, (score+i), *(score+i)); } return 0; } [RESULT] 0 4022334556 77 1 4022334560 88 2 4022334564 99 내 컴퓨터에는 저리 찍힌다 딱봐도 알겠지만 (score+i) 이게 주소값이다 이말은 다음과도 같다 !! &(score[i]) == score + i 대박사건~~~ 배열 그 자체에..
c언어에서는 저장된 크기를 알려주는 sizeof() 함수를 이용하여 배열의 크기를 구할 수 있다. int main(int argc, const char * argv[]) { double degree[] = {-5.34, 3.67, 19.76, 28.76, 35.63}; // 배열 Degree 선언하기 int size = sizeof(degree)/sizeof(degree[0]); // 배열의 크기 계산 for (int i = 0; i < size; i++) { printf("%.2f \n",degree[i]); } return 0; }
minjiwoo
MJ workspace