본문 바로가기

코딩테스트

(6)
[프로그래머스] Level 1 키패드 누르기 | 파이썬 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4..
[프로그래머스] Level 2 시저 암호 | 파이썬 문제 설명 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. 제한 조건 공백은 아무리 밀어도 공백입니다. s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다. s의 길이는 8000 이하입니다. n은 1 이상, 25 이하인 자연수입니다. 문제 풀이 def solution(s, n): s = list(s) l = [] for i in s: if i >= 'A' and i = 'a' and i
[프로그래머스] Level 2 JadenCase 문자열 만들기 문제 설명 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 1 이상인 문자열입니다. s는 알파벳과 공백 문자(" ")로 이루어져 있습니다. 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫 번째 입출력 예 참고 ) 입출력 예 문제 풀이 def solution(s): s = s.split(' ') l = [] for i in range(len(s)): if len(s[i]) >= 1: l.append(s[i][0].upper()) l.append(s[i][1:].lower()+' ') if l[-1] ==..
[프로그래머스] Level 1 자릿수 더하기/이상한 문자 만들기/약수의 합 자릿수 더하기.py 문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 문제 풀이 def solution(n): l = list(map(int, str(n))) return sum(l) n을 문자열로 바꾼 후 map함수를 사용해 각 자릿수를 int형으로 바꿨다. 이를 리스트로 만들어 l로 정의했다. sum함수를 사용해 리스트의 합을 출력했다. 한 줄 출력도 가능가능❗ def solution(n): return sum(list(map(int, str(n)))) 이상한 문자 만들기.py 문제 설명 1)..
[프로그래머스] Level 1 제일 작은 수 제거하기/정수 제곱근 판별/정수 내림차순으로 배치하기/자연수 뒤집어 배열로 만들기 제일 작은 수 제거하기.py 문제 설명 정수를 저장한 배열, arr에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를 들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴하고, [10] 면 [-1]을 리턴합니다. 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 문제 풀이 def solution(arr): if len(arr) == 1: return [-1] arr.remove(min(arr)) return arr 만약 arr의 길이가 1이면 배열에 -1을 채워 반환한다. arr의 최솟값을 min 함수로 찾고 re..
[프로그래머스] Level 1 짝수와 홀수/최대공약수와 최소공배수/콜라츠 추측/하샤드 수 짝수와 홀수.py 문제 설명 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 문제풀이 def solution(num): return "Even" if num % 2 == 0 else "Odd" 함수 반환 값에 if문을 넣어 작성했다. 최대공약수와 최소공배수. py 문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해..