-
[문제풀이 후기] 백준 #28295 - 체육은 코딩과목 입니다문제풀이/Baekjoon 2026. 2. 11. 17:20
https://www.acmicpc.net/problem/28295
기본 상위 코드
import { readFileSync } from "fs"; const input = readFileSync(0).toString().trim();첫 번째 시도 (결과 : 성공)
접근 방식
1. case 에 따라 switch 를 사용하여 현재 방향 수정
array.forEach((value) => { switch (value) { case 1: switch (result) { case "N": result = "E"; break; case "E": result = "S"; break; case "S": result = "W"; break; case "W": result = "N"; break; } break; case 2: switch (result) { case "N": result = "S"; break; case "E": result = "W"; break; case "S": result = "N"; break; case "W": result = "E"; break; } break; case 3: switch (result) { case "N": result = "W"; break; case "E": result = "N"; break; case "S": result = "E"; break; case "W": result = "S"; break; } break; } }); console.log(result);
규칙
북쪽(N) 을 기준으로 오른쪽으로 90도씩 이동한다고 가정했을 때
1 (우향우) : 90도로 1번 이동
2 (뒤로 돌아) : 90도로 2번 이동
3 (좌향좌) : 90도로 3번 이동 (= 90도로 좌로 이동)
=> 모든 값을 더한 뒤, 4로 나눈 나머지 = 북쪽을 기준으로 오른쪽으로 90도로 이동한 횟수두 번째 시도 (결과 : 성공)
접근 방식
1. directions 배열 생성
2. 모든 값을 합산
3. directions 에서 합 % 4 에 해당하는 index 값 반환const array = input.split("\n"); const directions = ["N", "E", "S", "W"]; const finalDirection = array.reduce((acc, value) => acc + Number(value), 0); console.log(directions[finalDirection % 4]);효과
코드 간결성 증가
후기
좌향좌 = 우향우 3번 으로 계산하는 규칙을 찾는게 어려웠다.
역시나 더 나은 방법은 존재했다.'문제풀이 > Baekjoon' 카테고리의 다른 글
[문제풀이 후기] 백준 #32710 - 구구단표 (0) 2026.03.02 [문제풀이 후기] 백준 #29736 - 브실이와 친구가 되고 싶어 (0) 2026.02.27 [문제풀이 후기] 백준 #28431 - 양말 짝 맞추기 (0) 2026.02.11 [문제풀이 후기] 백준 #31495 - 그게 무슨 코드니.. (0) 2026.01.23 [문제풀이 후기] 백준 #14935 - FA (0) 2026.01.22