본문 바로가기
320x100

PS/Codewars2

[Codewars]4kyu - The observed PIN 이 문제는 문제가 좋다기보다는 파이썬의 새로운 모듈을 알게 된 문제여서 글을 쓴다.. 문제는 간단하다. 비밀번호로 추정되는 숫자가 들어오는데, 확실하지 않아서 해당 수에서 인접한(상하좌우, 대각선 제외) 숫자까지 모두 눌러봐야 하는 상황에서 가능한 모든 비밀번호를 return하면 된다. 나는 이렇게 힘들게 작성했다. def get_pins(observed): a = [] for char in observed: num = int(char) temp = [num] if num == 0: temp.append(8) a.append(temp) continue if num == 8: temp.append(0) if num - 1 >= 1 and num % 3 != 1: temp.append(num-1) if nu.. 2021. 1. 31.
[Codewars]5kyu - Sum of pairs 어떤 수들의 리스트가 주어지고, target이 주어지는데, list에서 target을 맞추기 위한 쌍을 찾아서 return하면 된다. 쉬워 보이는데 막상 하면 어렵다. 그냥 이중 for문을 사용하면 무조건 시간 초과가 뜬다. NOTE에 쓰여 있듯이 길이가 천만이 넘는 리스트도 나오기 때문이다. 그리고 문제의 설명이 좀 모호한 점이 있는데, 해당 target을 만들기 위한 쌍이 여러개 있다면 두 수의 인덱스 중 나중 인덱스가 가장 빠른(왼쪽에 있는) 쌍을 골라 내보내야 한다. 이중 for문을 사용한다면 시간 복잡도는 O(n^2)이고 그 코드는 이렇다. def sum_pairs(ints, s): for i in range(1,len(ints)): for j in range(i): if ints[i] + in.. 2021. 1. 31.