문제 링크 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 스카피는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하는 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() 함수: 문제 조건에 돌기와 돌기는 부딪히면 안되므..
문제 링크 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴� programmers.co.kr 풀이 풀이 순서를 주었기 때문에 해당 solution함수를 재귀 함수로 주어진 풀이대로 수행하였다. 풀이를 주니까 따라서 하기만 했더니 바로 성공 더보기 #include #include #include #include using namespace std; string solution(string p) { string u = ""; string v = ""; // 빈 문자열 검사 if(p.length()==0) { return ""; } else { /..
문제 링크 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 풀이 bundle변수를 선언하여 1개씩 묶은 것부터 문자열의 length/2까지 묶은 것의 개수를 vector 컨테이너에 넣고 최소를 return 하였다. 더보기 #include #include #include using namespace std; int solution(string s) { int answer = s.length(); int bundle = 1; int len = s.length(); vector v; // cout