목록분류 전체보기 (234)
honey_pot
https://programmers.co.kr/learn/courses/30/lessons/77484# 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr def solution(lottos, win_nums): answer = [] match = 0 zero = lottos.count(0) for i in lottos: if i in win_nums: match += 1 if match==0 and zero==0: answer.append(6) else: answe..
https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr def solution(n, arr1, arr2): answer = [] for a1,a2 in zip(arr1,arr2): arr12 = str(bin(a1|a2)[2:]) arr12 = arr12.rjust(n,'0') arr12 = arr12.replace('1','#') arr12 = arr12.replace('0',' ') answer.appen..
https://programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr def solution(nums): n = len(nums)//2 poc = list(set(nums)) answer = 0 if len(poc) < n: answer = len(poc) else: answer = n return answer set을 이용해서 중복을 제거한 후 리스트의 원소개수가 nums의 길이/2 보다 작으면 리스트의 개수를 출력하고 같거나..
코드 def solution(numbers, hand): dic = {1:[0,0], 2: [0,1], 3:[0,2], 4:[1,0], 5:[1,1], 6:[1,2], 7:[2,0], 8:[2,1], 9:[2,2], '*':[3,0], 0:[3,1], '#':[3,2]} res = '' l_now = dic['*'] r_now = dic['#'] l = [1, 4, 7] r = [3, 6, 9] mid = [2, 5, 8, 0] for i in numbers: if i in l: res += 'L' l_now = dic[i] elif i in r: res += 'R' r_now = dic[i] elif i in mid: l_d=0 r_d=0 for a,b,c in zip(l_now, r_now, dic[..
코드 def solution(s): word = '' num = ['zero', 'one', 'two','three','four','five', 'six','seven','eight','nine'] res =[] for i in s: if i.isnumeric(): res.append(int(i)) else: word += str(i) if len(word) > 2 and word in num: su = num.index(word) res.append(int(su)) word='' return int(''.join(str(i) for i in res)) 출력부분에서 계속 null이 나오길래 뭐가 문제인가 했더니 return으로 써야하는데 print로 써서였다 딕셔너리로도 풀 수 있을 것 같은데 zero까..
https://programmers.co.kr/learn/courses/30/lessons/42889 코드 def solution(N, stages): result = {} denominator = len(stages) for stage in range(1, N+1): if denominator != 0: cnt = stages.count(stage) result[stage] = cnt/denominator denominator -= cnt else: result[stage] = 0 return sorted(result, key = lambda x: result[x], reverse=True) 처음엔 len(stages)를 length라는 변수에 저장해서 풀었었는데 풀이방법을 검색해보니 denominat..
def solution(answers): answer = [[1,0],[2,0],[3,0]] pattern = [[1,2,3,4,5],[2, 1, 2, 3, 2, 4, 2, 5],[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]] for i,v in enumerate(answers): if v == pattern[0][i%5]: answer[0][1] +=1 if v == pattern[1][i%8]: answer[1][1] +=1 if v == pattern[2][i%10]: answer[2][1] +=1 result = [] for i in range(3): if max(answer, key=lambda x: x[1])[1] == answer[i][1]: result.append(i+1) ret..
문제 설명 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. arr 원소를 divisor로 나눠보고 나눠떨어지면 answer에 담아서 sorted answer가 비어있으면 -1를 담는다 def solution(arr, divisor): answer = [] for i in arr: if i%divisor == 0: answer...