목록Algorithm/Programmers (76)
S E P H ' S
코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 파이썬의 슬라이싱 개념에 아직 덜 익숙해서 옵션부분의 로직을 구현해내는데 어려움이 조금 있었다. def solution(dartResult): n = '' score = [] for i in dartResult: if i.isnumeric(): n += i elif i == 'S': n = int(n) ** 0.5 score.append(n) n = '' elif i == 'D': n = int(n) ** 0.5 score.append(n) n = '' elif i == 'T': n = int(n) ** 0.5 score.append(n) n = '' elif i == '*' if len(score) > 1: score[-2] = s..
코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 문제에 대한 설명은 엄청 길지만 간단한 문제이다. 1. lottos에 win_nums에 있는 숫자가 있다면 ans를 1씩 증가. 2. lottos안의 0을 count함수를 활용하여 카운트. 3. rank 를 나타내는 list를 만든다. 4. 최고 순위, 최저 순위를 반환. def solution(lottos, win_nums): rank = [6,6,5,4,3,2,1] cnt_0 = lottos.count(0) an..
코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 1. divmod : 몫과 나머지를 tuple로 반환하는 함수 2. 나머지를 str 형태로 이어붙이고 3. n에 새로운 몫을 계속 넣는다. 4. answer를 int형, 밑을 3으로 반환한다. def solution(n): answer = '' while n > 0: q, r = divmod(n, 3) answer += str(r) n = q return int(answer, base = 3)
코딩테스트 연습 - 내적 길이가 같은 두 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 def solution(a, b): answer = 0 for i in range(len(a)): answer += a[i]*b[i] return answer