-
[문제풀이 후기] 백준 #18691 - Pokemon Buddy문제풀이/Baekjoon 2026. 4. 7. 19:23
https://www.acmicpc.net/problem/18691
문제 요약
'포켓몬 고' 의 새로운 업데이트 'Buddy'
1. Buddy 포켓몬과 함께 일정 거리를 다니면 Candy 를 준다.
2. Candy 는 포켓몬의 진화에 사용된다.
3. Buddy 포켓몬은 3개의 Group 으로 나뉜다.
4. 각 Group 의 Candy 지급 기준은 다음과 같다.
- Group 1 : 이동 거리 1 km 당 Candy 1 개
- Group 2 : 이동 거리 3 km 당 Candy 1 개
- Group 3 : 이동 거리 5 km 당 Candy 1 개
입력값
: G ( Group 번호 ) / C ( 현재 보유 Candy 개수 ) / E ( 포켓몬의 진화에 필요한 Candy 개수)
출력값
: 포켓몬의 진화를 위해 다녀야 하는 거리 (km)기본 상위 코드
import { readFileSync } from "fs"; const input = readFileSync(0).toString().trim(); const [, ...values] = input.split("\n");첫 번째 시도 (결과 : 성공)
접근 방식
1. 이미 조건을 만족하는 경우 0 return
2. G 에 따라 계산한 결과값 returnconst result = values.map((value) => { const [G, C, E] = value.split(" ").map(Number); const demand = E - C; if (demand < 0) return 0; else { switch (G) { case 1: return demand; case 2: return 3 * demand; case 3: return 5 * demand; } } }); console.log(result.join("\n"));
두 번째 시도 (결과 : 성공)
접근 방식
1. Group 번호와 보상을 공식화
2. Math.max 로 0 이하 처리const result = values.map((value) => { const [g, c, e] = value.split(" ").map(Number); return Math.max(0, (e - c) * (2 * g - 1)); }); console.log(result.join("\n"));효과
코드 간결화
메모리 : 9340 KB -> 9336 KB'문제풀이 > Baekjoon' 카테고리의 다른 글
[문제풀이 후기] 백준 #30402 - 감마선을 맞은 컴퓨터 (0) 2026.03.17 [문제풀이 후기] 백준 #28352 - 10! (1) 2026.03.04 [문제풀이 후기] 백준 #11121 - Communication Channels (0) 2026.03.03 [문제풀이 후기] 백준 #32710 - 구구단표 (0) 2026.03.02 [문제풀이 후기] 백준 #29736 - 브실이와 친구가 되고 싶어 (0) 2026.02.27