본문 바로가기

전체 글400

007 주몽 첫번째 코드 투 포인터를 배웠으니까 이용해서 풀어보자! sorting을 진행하여 오름차순으로 변경 합이 작으면 : 시작 += 1 합이 크면 : 끝 -= 1 합이 같으면: 시작 += 1, 끝 -= 1 라고 생각을 했는데 계속 같은 수가 있으면? 이라는 생각으로 코드를 만들면서 엉켜버렸다... 큰 아이디어는 바뀌지 않고 책을 보면서 코드와 생각 정리하면서 정답을 맞췄다! import sys input = sys.stdin.readline n = int(input()) m = int(input()) number = list(map(int, input().split())) one = 0 two = n-1 count = 0 sort_number = sorted(number) while one 2024. 4. 11.
덧칠하기 첫번째 코드 딱 보고 생각이 든 것은 슬라이딩 윈도우 같이 생겼네! coloring이라는 변수에 section의 맨 앞에 존재하는 원소부터 m개까지는 추가해서 section에서 제거하자 하여 section에 원소가 더 이상 존재하지 않으면 멈춘다! 라는 아이디어로 시작해서 중복과 제거, 추가가 쉬운 집합이 생각이 났다! def solution(n, m, section): answer = 0 section = set(section) while section: coloring = set(range(min(section), min(section) + m)) section = section - coloring answer += 1 return answer 해당 코드는 정답을 맞추는 것 같으나 몇 부분에서 시간 .. 2024. 4. 10.
x만큼 간격이 있는 n개의 숫자 첫번째 코드 x만큼 간격이 있는 n개의 숫자를 출력하기 위해서는 곱하기를 이용하면 된다는 생각이 들었다! 4*1 = 4 4*2 = 8 위 두 출력 사이 간격은 x = 4만큼 나기 때문이다! def solution(x, n): answer = [] for i in range(1, n+1): answer.append(x*i) return answer 통과! :) 링크 https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/12954.%E2%80%85x%EB%A7%8C%ED%81%BC%E2%80%85%EA%B0%84%EA%B2%A9%EC%9D%B4%E2%80%85%EC%9E%88%.. 2024. 4. 10.
로또의 최고 순위와 최저 순위 첫번째 코드 풀기에 앞서 하나의 함수로 푸는 것이 아니라, 결과와 관련된 함수를 생성한 후 함수 안에 해당 함수를 적용하는 방식으로 코드를 구성하고 싶었다. 그래서 rank와 관련된 함수를 하나 생성했다 이후 번호를 비교한 뒤 개수만큼 rank함수를 통해 순위를 answer에 저장하고, 0이 있는 만큼 개수를 더한 뒤 rank함수를 통해 순위를 answer에 저장했다. 그렇게 되면 내림차순으로 진행되기 때문에 마지막 sort를 통해 오름차순으로 바꾼 뒤 결과를 출력한다! def rank(x): if x == 6: return 1 elif x == 5: return 2 elif x == 4: return 3 elif x == 3: return 4 elif x == 2: return 5 else: retur.. 2024. 4. 9.
없는 숫자 더하기 첫번째 코드 중복된 숫자 없는 집합을 만들어야하는 경우에 set()함수가 늘 먼저 생각난다. 그래서 0부터 9로 구성된 집합을 만든 후 차집합을 통해 필요한 번호들을 구한 후 해당 값을 더하는 코드를 작성했다! def solution(numbers): number_set = set(numbers) answer = sum(set(range(0, 10, 1)) - number_set) return answer 통과:) 링크 https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/86051.%E2%80%85%EC%97%86%EB%8A%94%E2%80%85%EC%88%AB%EC%9E.. 2024. 4. 9.
006 수들의 합 5 첫번째 코드 처음부터 범위를 지정해가면서 해당 범위의 값을 더해서 맞으면 count에 1을 더하는 형식으로! import sys input = sys.stdin.readline n = int(input()) count = 0 n_list = list(range(1, n+1)) for i in range(n+1): for j in range(i): if sum(n_list[j:i]) == n: count += 1 print(count) 메모리 초과? 두번째 코드 책을 반영하여! 투포인트? start, end의 투포인트를 통해 sum이라는 변수의 값만 바뀌고 나머지 값은 고려하지 않아버리는 것이다. import sys input = sys.stdin.readline n = int(input()) count .. 2024. 4. 8.
728x90