목록CodingTest/programmers (96)
기억은 짧고 기록은 길다

Link 코딩테스트 연습 - 자연수 뒤집어 배열로 만들기 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 programmers.co.kr Solution def solution(n): return [int(i) for i in list(str(n))[::-1]] 🔑 key: [::-1], reversed() Other Solution def solution(n): return list(map(int, reversed(str(n))))

Link 코딩테스트 연습 - 자릿수 더하기 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출 programmers.co.kr Solution def solution(n): return sum([int(i) for i in str(n)]) 📌 Tip: map(), Recursive Function Other Solution def solution(n): return sum(map(int, str(n))) def solution(n): if n < 10: return number; return (n % 1..

Link 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr Solution 문제를 보면 공백이 연속해서 나오는지 s는 소문자로만 이루어져 있는지에 대한 언급이 없으므로 공백이 연속으로 나올 수도 있고 소문자 대문자 섞여서 줄 수도 있다고 생각하고 문제를 해결해야 한다. 필자의 첫번째 풀이는 단어 마다 인덱스를 새로 시작해주기 위해 b를 사용했다. 공백을 만나면 b를 0으로 초기화해주어서 공백 다음에 나오는 단어의 인덱스를 0부터 잡아주도록 하였다. 두번째 풀이는 공백을 기준으로 split()을 사용..

Link 코딩테스트 연습 - 행렬의 덧셈 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요 programmers.co.kr Solution 해당 문제는 필자의 풀이인 zip()를 사용하는 방법 보다는 numpy를 사용하여 해결하는것이 필자는 더 바람직하다고 생각한다. 하지만 zip()도 자주 쓰이므로 이번 기회에 익혀두기 바란다. def solution(arr1, arr2): answer = [] for i, j in zip(arr1, arr2): t = [] for m, n in zip(i, j): t.append(m + n) answer.a..

Link 코딩테스트 연습 - 핸드폰 번호 가리기 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자 programmers.co.kr Solution def solution(phone_number): return '*' * (len(phone_number) - 4) + phone_number[-4:] 🔑 key point: Indexing, regular expression Other Solution import re def solution(phone_number): p = re.compile(r'\d(?=\d{4})') return p.sub("*", phon..

Link 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr Solution def solution(x): return x % sum([int(i) for i in str(x)]) == 0 🔑 key point: str(), int()