Programmers 60

[프로그래머스 / 파이썬 풀이] 크레인 인형뽑기 게임

def solution(board, moves): answer = 0 N = len(board) pop_lst = [] for i in moves: for j in range(N): if board[j][i-1] != 0: if pop_lst: if pop_lst[-1] == board[j][i-1]: answer += 2 pop_lst.pop() else: pop_lst.append(board[j][i-1]) else: pop_lst.append(board[j][i-1]) board[j][i-1] = 0 break return answer 2차원 배열을 순회하며 인형을 뽑는다. 만약 인형이 존재 할 때 인형을 뽑았던 리스트의 마지막과 현재 뽑은 인형을 비교하여 같다면 answer + 2 를 해주고 뽑았..

Programmers 2023.01.31

[프로그래머스 / 파이썬 풀이] 체육복

실패 코드 def solution(n, lost, reserve): answer = 0 every = [] lost = sorted(lost) reserve = sorted(reserve) for i in range(1, n+1): if i not in lost: every.append(i) else: for j in reserve: if j in lost: reserve.pop(0) every.append(j) break elif j - 1 == i or j + 1 == i: reserve.pop(0) every.append(i) break a = set(every) print(a) return len(a) 3, 5, 7, 10 테스트 케이스를 실패하는 코드. 이유는 아직 찾고있다.. 정답 코드 def..

Programmers 2023.01.30

[프로그래머스 / 파이썬 풀이] 로또의 최고 순위와 최저 순위

def solution(lottos, win_nums): answer = [] rank = {6:1, 5:2, 4:3, 3:4, 2:5} comp_lst = [0, 0] for i in lottos: if i == 0 or i in win_nums: comp_lst[0] += 1 if i != 0 and i in win_nums: comp_lst[1] += 1 for i in comp_lst: if i not in rank.keys(): answer.append(6) else: answer.append(rank[i]) return answer 최대로 맞춘 개수와 최소로 맞춘 개수를 비교배열에 저장한다. (최대 일 경우 0은 맞춘 개수로 생각, 최소 일 경우는 0은 틀린 개수로 생각한다.) 이후 맞춘 개수..

Programmers 2023.01.25
LIST