https://programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 programmers.co.kr 해설 : -5부터 5까지의 좌표가 존재하는 2차 좌표평면 위에서 "U","D","L","R" 4가지의 명령어를 사용하여 x축 또는 y축으로 이동한다. 주어지는 이동명령을 수행한 후 총 이동하는 거리를 출력하면 된다. 풀이 : "U","D","L","R"의 명령을 수행하기 위해 dictionary에 x,y좌표의 변홧값을 미리 입력해두었다. 주어진 명령을 실행하면서x좌표와 y좌표를 변화시켰는데 x좌표와 y좌표가 좌표평면의 범위를 넘어서지 않고, 이동경로를 기록해주는 answer 배열에 넣어주려 하였는데, 여기서 조건은 이미 이동한 경로일 경우 이..
https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 해설 : 각 행마다 x라는 값을 이진수로 변경하여 구현할 수 있는 n x n 사이즈의 배열이 두 개 주어진다. 이 때, 이진값이 1이면 벽이고 0이면 통로이다. 이 두 배열을 겹쳤을 때 벽인 부분은 # 통로 부분은 공백으로 표시해서 한 배열에 담으면 된다. 풀이 : arr1과 arr2에 대해 각 자릿수를 이진수로 변경하고 가공한 배열에서 두 배열의 겹치는..
https://programmers.co.kr/learn/courses/30/lessons/82612 코딩테스트 연습 - 부족한 금액 계산하기 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr 해설 : 현재 내가 갖고 있는 돈 money와 놀이기구의 요금 price, 놀이기구 이용횟수 count가 주어질 때 놀이기구를 count번 이용하면 돈이 얼마 모자라는지 리턴하면 된다. 단, 놀이기구는 이용 횟수만큼 가격이 곱해진다. 풀이 : 놀이기구를 1번 이용한다면 가격은 1 x price이고 2번 이용한다면 (1 x price) +..
https://programmers.co.kr/learn/courses/30/lessons/87389 코딩테스트 연습 - 나머지가 1이 되는 수 찾기 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 입 programmers.co.kr 해설 : 자연수 n이 주어질 때, n을 x로 나누어서 나머지가 1이 되게 하는 가장 작은 수 x를 찾으면 된다. 풀이 : while문을 사용하여 1부터 n을 나누었을때 나머지가 1이 되는 수를 찾고 이를 리턴한다. 123456def solution(n): i = 1 while True: if n % i == 1: r..
https://programmers.co.kr/learn/courses/30/lessons/84512 코딩테스트 연습 - 모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr 해설 : 모음으로만 이루어진 5글자 이하의 문자열이 주어질 때, 사전순으로 "A"부터 "UUUUU" 까지의 모든 단어들 중 몇 번째 순서에 위치하는지 찾는 문제이다. 풀이 : 사전순으로 몇 번째 위치에 있는지 알기 위해 "A" 부터 "UUUUU"까지 담겨있는 list를 만들었다. 정말 무식한 방법을 사용한 것 같다...
https://programmers.co.kr/learn/courses/30/lessons/86491?language=python3 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 해설 : 명함을 수납할 수 있는 지갑을 만들기 위해 조사한 명함들의 가로, 세로 길이들이 주어진다. 이 길이들을 모든 명함을 수납할 수 있는 명함지갑의 최소 사이즈를 찾으면 된다. 풀이 : 명함을 수납할 때 옆으로 돌려서 수납할 수 있는 경우, 즉 가로와 세로의 길이가 바뀌어 보관하는 경우가 있기 때문에 가로와 세로 길이를 잘 조정해야..
https://programmers.co.kr/learn/courses/30/lessons/86971 코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 해설 : 트리형태로 연결되어있는 전력망이 있다. 트리의 간선들 중 하나를 끊어 두 개의 트리로 나눈다고 할 때, 이 두 트리의 노드 개수의 차이가 최소가 되는 값을 찾으면 된다 풀이 : 트리의 탐색은 BFS로 진행했지만 전체적인 구조는 완전탐색으로 진행하였다. 간선들의 정보가 주어진 wires 배열에서 인덱스별로 하나씩 삭제하는 경우를 copy하여 bfs로 탐색하..
https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 해설 : 카펫이 다음과 같이 테두리는 갈색, 속 알멩이는 노란색으로 칠해져 있다. 갈색 칸의 개수와, 노란색 칸의 개수만을 알고 있을 때 원래 카펫의 가로와 세로 길이를 찾으면 된다. 풀이 : 문제의 분류가 완전탐색로 구분되어있어 크게 봤을 땐 완전탐색이 맞다. 하지만 수학적인 부분들을 생각하는 것에 시간이 더 걸렸던 것 같다. 먼저 갈색, 노란색 블록의 개..