{}연습장
대시보드학습스킬 경로문제모의고사라이브 코테복습데이터
문제 목록〉큐〉마지막에 남는 카드← 이전다음 →
#077 · 큐쉬움큐 (Queue)

마지막에 남는 카드

문제

1 부터 n 까지의 숫자가 적힌 카드가 순서대로 큐에 들어 있습니다. 카드가 한 장 남을 때까지 아래 두 동작을 반복합니다:

  1. 큐의 맨 앞 카드를 "버린다"
  2. 그다음 맨 앞 카드를 "맨 뒤로 보낸다" 마지막에 남는 카드의 숫자를 반환하세요.

예시

n=4
  [1,2,3,4] → 1버림, 2→뒤 → [3,4,2] → 3버림, 4→뒤 → [2,4] → 2버림, 4→뒤 → [4]
  → 4
 
n=6 → 4
n=1 → 1   (이미 한 장)
n=2 → 2

제약 조건

  • 1 ≤ n ≤ 10,000

시간 복잡도 목표: O(N) (head 인덱스로 큐를 구현하면 가능) ※ Array.shift 는 O(N) 이라 단순 사용 시 전체 O(N²) — n ≤ 10,000 이면 통과 가능.

테스트 케이스

예시 1: n=1 → 그대로 1
입력: n = 1
출력: 1
예시 2: n=2 → 2
입력: n = 2
출력: 2
예시 3: n=4 → 4
입력: n = 4
출력: 4
예시 4: n=6 → 4
입력: n = 6
출력: 4
예시 5: n=8 → 8
입력: n = 8
출력: 8
예시 6: n=10 → 4
입력: n = 10
출력: 4
예시 7: n=100 → 72
입력: n = 100
출력: 72
solution.ts
에디터 로딩 중…

▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.