분류 전체보기 82

Lv.1-크레인 인형뽑기

문제 인형의 위치가 놓인 배열 board와 인형뽑기 기계가 내려갈 위치가 적힌 moves 배열이 주어진다. 0이 아닌 위치를 집으면 이 숫자는 bucket에 담긴다. 한번 집은 자리는 0이 된다. bucket의 숫자는 바닥부터 저장되며 같은 수가 만나게 되면 사라진다. 사라진 인형의 개수를 return 하시오. 내 코드 def solution(board, moves): bucket= [] board_len = len(board) i = 0 cnt = 0 for y in moves: for x in range(board_len): if board[x][y-1] != 0: bucket.append(board[x][y-1]) board[x][y-1] = 0 i += 1 break if i > 1 and buc..

Python/Programmers 2021.07.07

Lv.1-모의고사

문제 1번 수포자는 1,2,3,4,5,1,2,3,4,5 .... 2번 수포자는 2,1,2,3,2,4,2,5,2,1,2,3,2,4,2,5,.... 3번 수포자는 3,3,1,1,2,2,4,4,5,5,.... answer 배열이 주어질 때 가장 많이 맞힌 학생을 return해라. 내 코드 def solution(answers): cycles = { 1:[1,2,3,4,5], 2:[2,1,2,3,2,4,2,5], 3:[3,3,1,1,2,2,4,4,5,5] } correct = { 1:0, 2:0, 3:0 } i1, i2, i3 = 0, 0, 0 answer_len = len(answers) for i in range(answer_len): if i1 == 5: i1 = 0 if i2 == 8: i2 = 0 if..

Python/Programmers 2021.07.07

Lv.1-체육복

문제 전체 학생 수 n, 도난당한 학생 lost, 여분을 가지고 온 학생 reserve 배열이 주어진다. 여분을 가지고 온 학생은 자기 번호의 +1, -1의 학생에게 빌려줄 수 있다. 최대한 많이 수업을 참여할 수 있는 학생의 수를 return 하시오. ✅ 여분을 가지고 온 학생 또한 도난당할 수 있다. 내 코드 def solution(n, lost, reserve): #여분이 있지만 도난당한 학생 reser_lost=set(lost)&set(reserve) tmp=[] cnt=0 for i in list(reser_lost): lost.remove(i) reserve.remove(i) normal = n - len(lost) - len(reserve) for i in reserve: if i-1 in ..

Python/Programmers 2021.07.07

Lv.1-로또의 최고 순위와 최저 순위

문제 내 로또 번호 6자리와 당첨 번호 6자리의 두 배열이 주어진다. 내 로또 번호엔 0이 있을 수도 있으며 이는 최고 순위, 최저 순위에 따라 당첨 번호로 변경될 수도 있다. ex) [0,0,0,0,0,0] [1,2,3,4,5,6]이 주어지면 최고 순위는 1등, 최저 순위는 6등 내 코드 def solution(lottos, win_nums): same=set(win_nums)-set(lottos) min = len(lottos)-len(same) #원래 맞은 숫자 if min == 6: #애초에 1등 return [1,1] max = min for i in range(len(lottos)): if min == 6: return [1,1] if lottos[i] == 0: max += 1 if min ..

Python/Programmers 2021.07.07

Lv.1-음양 더하기

문제 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. 내 코드 def solution(absolutes, signs): sum = 0 for i in range(len(signs)): if signs[i]==True: sum += absolutes[i] else: sum -= absolutes[i] return sum 문제 풀이 풀이 생략.

Python/Programmers 2021.07.07

Lv.1-소수 찾기

문제 주어진 배열에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return해야 한다. 내 코드 from itertools import combinations def solution(nums): all_nums = [] cnt = 0 li = list(combinations(nums,3)) for i in range(len(li)): all_nums.append(sum(li[i])) for i in range(len(all_nums)): half = int(all_nums[i]/2) for y in range(half+1): if y!=0 and y!=1 and all_nums[i]%y==0: cnt+=1 break return len(all_nums)-cnt 문제 풀이 ..

Python/Programmers 2021.07.07

Lv.1-K번째 숫자 꺼내기

문제 배열 array의 i ~ j 까지 자르고 k번째 숫자를 꺼내야 한다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 내 코드 def solution(array, commands): answer = [] for i in range(len(commands)): arr = array[commands[i][0]-1:commands[i][1]] arr.sort() answer.append(arr[commands[i][2]-1]) return answer 문제 풀이 배열을 먼저 ..

Python/Programmers 2021.07.07

Lv.1-신규 아이디 추천

문제 신규 가입자가 잘못된 아이디를 입력하면 아래 7가지 규칙에 따라 추천 아이디로 변환해줘야 한다. 1- new_id의 모든 대문자를 대응되는 소문자로 치환 2- new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자 제거 3- new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환 4- new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거 5- new_id가 빈 문자열이라면, new_id에 "a"를 대입 6- new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들 모두 제거 만약 제거 후 마침표(.) 가 new_id의 끝에 위치한다면 끝에 위치한 마침표(.) 문자를 제거 7- new_id..

Python/Programmers 2021.07.07

Lv.1-마라톤

문제 단 한명의 마라톤 참가자만 완주하지 못했다. Participant와 Completion의 배열이 주어질 때 완주하지 못한 사람을 찾아라. 내 코드 def solution(participant, completion): d = dict() answer = '' for i in range(len(participant)): if participant[i] not in d: d[participant[i]]=1 else: d[participant[i]]+=1 for i in range(len(completion)): if completion[i] in d: d[completion[i]]-=1 for k in d.keys(): if d[k] > 0: return k 문제 풀이 Python의 Dictionary를..

Python/Programmers 2021.07.07