목록Algorithm (111)
S E P H ' S
코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr def solution(N, stages): answer = [] len_stages = len(stages) for i in range(1, N+1): cnt = stages.count(i) if cnt == 0: fail = 0 else: fail = cnt / len_stages answer.append((i, fail)) len_stages -= cnt answer = sorted(answer, key=lambda x:x[1], reverse=True) ..
코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 둘중 하나가 1이면 벽이 생기는, 즉 비트연산이 핵심이었던 문제였다. or 연산을 통해 문제를 풀었다. def solution(n, arr1, arr2): answer = [] for num1, num2 in zip(arr1, arr2): tmp = bin(num1 | num2)[2:] if len(tmp) < n: tmp = '0'*(n-len(tmp)) + tmp tmp = tmp.replace('1','#') tmp = tmp.replace('0',..
코딩테스트 연습 - [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..