-
[코딩테스트 합격자 되기] queue 활용알고리즘/코딩테스트 문제 정리 2025. 1. 10. 21:19
코딩 테스트 합격자 만들기: 파이썬 편 190p
☄️ 문제 접근 및 내 생각
1. 리스트를 만들어서 빼고 더하고 빼고 더하고 하는 와중에 정해진 k값에 빼기를 한 번 더 하게 되면 될 것 같다.
2. 리스트로하게 되면 시간이 더 많이 걸리니깐 deque로 해야한다는 것을 다시 상기함.소요시간: 30분
🌈 파이썬 코드
from collections import deque # 문제 15 요세푸스 문제 def solution_15(n, k): # people = deque([int(x) + 1 for x in range(n)]) people = deque(range(1, n + 1)) count = 1 while len(people) > 1: if (count == k): people.popleft() count = 1 else: people.append(people.popleft()) count += 1 print(people) return people.popleft()
- 처음 구한 값인데 여기서 deque를 만드는 방식에서 잘못됬음 그래서 다시 사용법을 깨닳았음
- 책의 답지에서는 while문의 내용이 다르지만 뭐 이것도 나쁘지 않겠지?
🌈 자바스크립트 코드
function solution(n, k) { const people = Array.from({ length: n }, (_, index) => index + 1); let count = 1; while (people.length > 1) { if (count === k) { people.shift(); count = 0; } else { people.push(people.shift()); } count++; } return people[0]; }
'알고리즘 > 코딩테스트 문제 정리' 카테고리의 다른 글
[코딩 테스트 합격자 되기] deque 사용하기 (0) 2025.01.13 [99클럽] stack 기초, B2776 (0) 2025.01.13 [코딩 테스트 합격자 되기] stack의 심화 (내 기준) (0) 2025.01.08 [코딩 테스트 합격자 되기] 괄호 문제 알고보니 Lv.2 (0) 2025.01.06 [코딩 테스트 합격자 되기] Stack 활용 (1) 2024.12.31