https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 해설 : 주어진 배열의 숫자들을 3개씩 더하여 만들 수 있는 수들 중 소수의 개수를 찾는 문제이다. 풀이 : Python의 내장 함수인 itertools 중 combination으로 주어진 배열에서 3개씩 고르는 모든 조합을 찾고 이 조합들의 sum이 소수인지 아닌지 판별하는 isPrime함수를 통해 소수의 개수를 카운트하였다. 1234567..
https://programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 해설 : a와 b 배열이 주어지는데 이 배열사이의 내적을 구하면 된다. 풀이 : 배열의 요소들을 zip 함수를 통해 묶음연산하고 이를 sum으로 더해줘서 해결하였다. 12def solution(a, b): return sum(x*y for x,y in zip(a,b))cs
https://programmers.co.kr/learn/courses/30/lessons/76501 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 해설 : 두 개의 배열이 주어진다. 하나는 숫자들만 들어있고 하나는 true 또는 false의 값이 들어있다. 첫 배열의 각 숫자들에 두번째 배열의 부호들을 붙여 수식을 계산하면 된다. 풀이 : Python의 zip과 eval이라는 기능을 사용하였다. zip은 list가 여러 개일 때 각 list의 요소들을 묶어서 한 번에 계산할 수 있는..
https://programmers.co.kr/learn/courses/30/lessons/86051 코딩테스트 연습 - 없는 숫자 더하기 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. programmers.co.kr 해설: 간단한 수학 문제이다. 0부터 9까지의 수들 중 주어진 배열에 있는 숫자들을 제외하고 더한 값을 출력하면 된다. 풀이: 0부터 9까지 더한 총 합은 45이므로 45에서 배열의 합인 sum(list)를 빼주면 된다. 12def solution(numbers): return 45-sum(numbers)cs>
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 해설 : 5x5의 2차원 배열로 이루어진 인형뽑기 게임에서 같은 인형을 2번 연속 뽑을경우 2점을 얻는 게임이다. 크레인에서 인형을 뽑는 순서가 주어질 때 얻을 수 있는 점수를 출력하면 된다. 풀이: stack을 사용하면 쉽게 해결할 수 있는 문제이다. 크레인이 인형을 뽑는 상황을 y좌표는 고정하며 x의 좌표가 5이상 또는 인형을 만날때까지 1씩 증가시켜주었고 만약 인형을 만났다면 이를 ..
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 해설 : 구현 문제이다 12개의 키가 있는 번호판에서 다음번에 누르려는 키패드에서 왼쪽 열에 있는 경우 왼손으로, 오른쪽 열에 있는 경우 오른손으로 누르고 중간 열에 잇는 경우 가장 가까운 손으로 키패드를 누르며 이동시키면 된다. 핵심은 키패드간의 거리..
https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 해설: 문자열 s가 주어졌을 때 영어로 써져있는 숫자를 원래 숫자로 바꾸어서 출력하는 문제이다. 풀이 : dictionary를 이용하여 각 숫자를 의미하는 영단어와 숫자를 key-value로 매칭시켜놓고 isDigit()함수를 사용하여 숫자가 아닌 문자를 만날 때마다 치환시켜주었다. 12345678910111213141516171819202122232..
https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 해설 : 2018년도 카카오 블라인드 1차 코딩테스트 문제이다. 오픈채팅방에 들어오고 나가고 닉네임을 변경하는 유저들에 대해 채팅방에서 안내되는 시스템 메시지를 양식에 맞게 출력하면 된다. 풀이 : 쉬운 구현 문제이다. 핵심은 ID와 닉네임의 관계를 파악하는 것이다. ID는 고유한 값이다. 즉, KEY값으로 ID를 사용하고 VALUE값으로 닉네임을 지정해주면 닉..
https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 풀이 : 주어진 문자열을 조건에 맞게 압축하여 가장 짧게 압축할 수 있는 길이를 출력하면 된다. 해설 : 직관적으로 접근하면 쉽게 해결할 수 있는 문제이다. 문자열 s의 절반만큼의 길이만큼 잘라주며 반복되는 구간이 나온다면 합쳐주면 된다. 어려웠던 부분은 중복되는 부분이 없거나 (구간반복 cnt가 1일떄) 문자열의 끝까지 반복할때 예외처리 하는것이 까다로..