문제 링크 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 스카피는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하는 programmers.co.kr 풀이 감이 안잡혀 해설을 보고 풀었다. 시계, 반시계 이동때문에 감이 안잡혔는데 한 방향이 최적이였다. 순환을 직선화 시키는 법과 친구들을 모두 완전탐색(순열)하여 풀었다. // 요약 1) weak[0]+n을 push하고 weak[0]을 erase하여 순환하는 것을 직선화 시켰다. 2) 친구 수를 next_permutation으로 취약 위치가 순환할 때 전부 점검했다. 3) answer가 signed int이므로 -1값을 unsigned int로 비교할..
문제 링크 코딩테스트 연습 - 블록 이동하기 [[0, 0, 0, 1, 1],[0, 0, 0, 1, 0],[0, 1, 0, 1, 1],[1, 1, 0, 0, 1],[0, 0, 0, 0, 0]] 7 programmers.co.kr 풀이 여러 블로그를 참고하고 카카오 공식 해설도 보고 문제를 풀었다. 맥락은 구조체로 (row, col, direction, time)으로 최소시간을 구하는 것이니 Queue를 사용하여 BFS를 구현하는 것이었다. // 변수명 중심 좌표(r, c) == 방문을 결정하는 좌표 (rr, cc) == 나머지 좌표 size == board size isLying == 가로면 true, 세로면 false (로봇이 누워있는지 여부) Queue == Robot 구조체를 담는 큐 visit[10..
문제 링크 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr 풀이 진짜 비교구문 누가 더 빨리 짜나 문제였던거 같다.(시간 싸움) 이 문제에서 주의할 점은 row, column이 x,y와 반대라는 점이 중요하다.(출력할 때 다르다) 하..
문제 링크 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 풀이 검색으로 "완전 탐색"이라는 힌트를 얻고 풀었다. 컴퓨터 비전 강의를 수강해서 그런지 zero-pedding으로 구현하여 메모리는 좀 더 쓰고 비교 구문들을 제거했다. // 요약 // 함수들 1) rotate_90() 함수: 시계 방향으로 90도를 돌리는 함수 --- 정방형 배열이므로 저런 규칙이 나왔다, 실제로 돌려본... 2) check() 함수: zero-pedding을 했지만 안쪽만 모두 홈이 채워졌는지 검사 3) compare_xor() 함수: 문제 조건에 돌기와 돌기는 부딪히면 안되므..
문제 링크 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 풀이 Level 1답게 비교 구문 이용해서 푸는 문제였다. 정해진 범위기 때문에 미리 map에 담아두고 거리 비교(절대값)로 풀었다. 요약 // Setting map에 키 패드 위치(row, col) 초기화 왼손 위치 초기화 오른손 위치 초기화 // TODO 반복문(number 배열 크기) { 1, 4, 7일 때, 왼손 입력 및 위치 갱신 3..
문제 링크 코딩테스트 연습 - [1차] 추석 트래픽 입력: [ 2016-09-15 20:59:57.421 0.351s, 2016-09-15 20:59:58.233 1.181s, 2016-09-15 20:59:58.299 0.8s, 2016-09-15 20:59:58.688 1.041s, 2016-09-15 20:59:59.591 1.412s, 2016-09-15 21:00:00.464 1.466s, 2016-09-15 21:00:00.741 1.581s, 2016-09-15 21:00:00.748 programmers.co.kr 풀이 문제를 보고 든 생각은 구간별로 비교하면 되지 않을까? 하면서 선행처리 외에 반복문 두 개로 풀렸다. 요약을 하면, (전 처리 + 주 처리)로 나누어서 진행하였다. 빨리 풀..
문제 링크 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0� programmers.co.kr 풀이 // 요약 반복문(answer의 length()가 t가 되면 break;){ num을 n진법으로 변환(do-while문 이용) --- 거꾸로 들어가므로 reverse해준다.( 헤더 포함) 내 차례일 때만 answer에 기록 --- % 연산자를 사용하여 내 순서를 계속 체크한다. } while문에서 순서 생각하는 것이 번거로워 true문으로 돌리고 if문으로 break 했다. 더보기 #include #include #include..
문제 링크 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램�� programmers.co.kr 풀이 조건이 많은 것은 주석을 다는 습관을 다지고 있다. 주석에 대해서 요약해보자면 * 요약 // 선행 처리 1) answer에 복사생성자를 통해 files를 미리 복사 2) files를 모두 대문자로 변환(cctype과 algorithm 헤더가 필요) // 처리 1) 파일명 분할(vector을 선언하여 first는 본래의 string, second는 part별로 나눈 string을 저장하였다. (answer가 first에 들어간다, 이..