본문 바로가기

알고리즘 문제 풀이/Programmers24

[4회차] Programmers Level.1 정수 제곱근 판별 def solution(n): if n**0.5 == int(n**0.5): return((n**0.5 + 1)**2) return -1 Programmers Level.1 제일 작은 수 제거하기 def solution(arr): arr.remove(min(arr)) if len(arr) == 0: return -1 return arr Programmers Level.1 짝수와 홀수 def solution(num): if num % 2 == 0: return 'Even' return 'Odd' Programmers Level.1 최대공약수와 최소공배수 def solution(n, m): a, b = max(n,m), min(n,m) while a % .. 2021. 12. 7.
[3회차] Programmers Level.1 최소직사각형 def solution(sizes): w = 0 h = 0 for size in sizes: size.sort() if size[1] > w: w = size[1] if size[0] > h: h = size[0] return w * h - 내가 생각한 풀이. - 이후 다른 사람의 풀이를 보니까 이걸 더 간단하게 구현하더라. 주어진 명함 사이즈의 긴 쪽 중에서 최대값을 찾고 짧은 쪽에서 최대값을 찾는 방식. 본질적으로는 나와 같은 방식이나 아래 풀이가 좀 더 문제의 본질을 파악한 듯. def solution(sizes): return max(max(x) for x in sizes) * max(min(x) for x in sizes) Programmers L.. 2021. 12. 6.
[2회차] Programmers Level.1 크레인 인형뽑기 def solution(board, moves): stack = [] answer = 0 for j in moves: for i in range(len(board)): if board[i][j-1] != 0: stack.append(board[i][j - 1]) board[i][j - 1] = 0 if len(stack)>=2 and stack[-1] == stack[-2]: stack.pop() stack.pop() answer += 2 break return answer Programmers Level.1 없는 숫자 더하기 def solution(numbers): lists = [0,1,2,3,4,5,6,7,8,9] answer = 0 for i i.. 2021. 12. 5.
[1회차] 이번에 부스트캠프 AI Tech를 지원하는데 코딩테스트를 보더라. 인터넷을 찾아보니까 프로그래머스 레벨1, 레벨2로 준비를 많이 하길래 나도 오늘부터 프로그래머스 문제 풀기 시작했다. Programmers Level.1 로또의 최고 순위와 최저 순위 def solution(lottos, win_nums): zeros = lottos.count(0) count = len([x for x in lottos if x in win_nums]) answer = [min(7-(count+zeros),6), min(7-count,6)] return answer 처음에는 단순히 answer = [7-count-zeros, 7-count]로 설정했는데 count = 0일때 오류가 발생했고 그래서 min을 이용해서 답을 .. 2021. 12. 4.