프로그래머스 50

프로그래머스 - 타겟 넘버

문제 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 풀이 numbers의 인덱스를 노드로 생각하고, 각 인덱스를 방문할 때마다 인덱스에 해당하는 값을 더한 값과, 뺀 값을 이용해서 dfs, bfs 탐색을 진행한다. 탐색이 끝난 후 중첩한 값과 target을 비교한다. 코드 python - dfs 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ..

프로그래머스 2021.08.24

프로그래머스 - 문자열 압축

문제 https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 풀이 문자열을 최대 len(s)/2의 길이만큼 압축할 수 있으므로 1 ~ len(s)/2 단위 길이로 모두 압축을 시도해보고, 압축 했을 때 각각의 길이를 비교해 최소 길이를 구한다. 코드 python 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 def solution(s): answer = ..

프로그래머스 2021.08.22

프로그래머스 - 키패드 누르기

문제 https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [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 풀이 [1, 4, 7]을 눌렀을 경우에는 바로 L을 추가하고, [3, 6, 9]를 눌렀을 때는 바로 R을 추가한다. [2, 5, 8, 0]을 눌렀을 경우에는 왼쪽 손과 오른쪽 손에 있는 버튼과의 거리를 각각 구해서 비교한다. 거리를 구할 때 세로 ..

프로그래머스 2021.08.21

프로그래머스 - 크레인 인형뽑기 게임

문제 https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 풀이 스택 자료구조를 이용하여 문제를 해결한다. 0이 아닌 숫자들은 스택에 저장하고 스택에 저장되어 있는 숫자들 중에 상위 2개가 같은지 비교한다. 코드 python 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 def solution(board, moves): answer = 0 board = list(map(list, zip(*board))) b..

프로그래머스 2021.08.20

프로그래머스 - 124 나라의 숫자

문제 https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 풀이 사용하는 숫자가 3개이므로 3진법처럼 생각을 한다. 3진법과는 다르게 0이 나올 자리에 4를 넣어주면 된다. 또한 0이 존재하지 않기 때문에 0으로 나누어 떨어질 경우에 n 값을 1 빼줘야 한다. 코드 python 1 2 3 4 5 6 7 8 9 10 11 def solution(n): remains = ['4', '1', '2'] answer = '' while n > 0: idx = n % 3 answer = remains[idx] + answer n //= 3 if idx == 0: n -= 1 return answe..

프로그래머스 2021.08.19

프로그래머스 - 모든 레코드 조회하기

문제 https://programmers.co.kr/learn/courses/30/lessons/59034 코딩테스트 연습 - 모든 레코드 조회하기ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디programmers.co.kr 풀이 ANIMAL_ID 칼럼순으로 출력하기 위해 ORDER BY로 정렬한다.  코드1SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID;cs

프로그래머스 - 모의고사

문제 https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 풀이 1번, 2번, 3번 수포자들의 문제 풀이 배열과 answers 배열을 각각 비교해서 정답을 구한다. 코드 python 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 def solution(answers): l1 = [1, 2, 3, 4, 5] * 2000 l2 = [2, 1, 2, 3, 2, 4, 2, 5]..

프로그래머스 2021.08.18

프로그래머스 - 숫자 문자열과 영단어

문제 https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 풀이 문자열의 replace 함수를 이용해서 문자를 숫자로 바꾼다. 코드 python 1 2 3 4 5 6 def solution(s): num_dic = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4", "five":"5", "six":"6", "seven":"7", "eight":"8"..

프로그래머스 2021.08.16

프로그래머스 - 소수 만들기

문제 https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 풀이 조합을 통해 3개를 뽑아낸 후 합을 구해 소수인지 판단한다. 뽑아낼 수가 3개로 고정되 있어서 3중 for문을 활용해 문제를 해결할 수도 있다. 코드 python 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 from itertools import combinations def setPrime():..

프로그래머스 2021.08.14