💡기본 정보
유형
: 시뮬레이션
풀이 날짜
: 2025년 01월13일
풀이방법 한줄 요약
: 선택한 컵과 공이 들어있는 컵 비교해서 공 들어있는 컵 번호 찾기
💡문제에서 구해야 할 것
컵 3개를 탁자 위에 일렬로 엎어 놓고 컵의 번호는 맨 왼쪽 컵부터 순서대로 1,2,3번
먼저 1번 컵의 아래에 공을 하나 넣음 두 컵을 골라 위치를 맞바꿈
컵의 위치를 총 M번 바꿀 것
- 입력 : 첫째 줄에 컵의 위치를 바꾼 횟수 M이 주어지며 , M은 50보다 작거나 같은 자연수
둘째 줄부터 M개의 줄에는 컵의 위치를 바꾼 방법 X와 Y가 주어짐 . X번 컵과 Y번 컵의 위치를 서로 바꾸는 것을 의미
X와 Y의 값은 3보다 작거나 같고 X와 Y가 같을 수도 있음 . 컵을 이동시킨 이후 공이 컵 바깥에 있는 경우는 없음
출력 : 첫째 줄에 공이 들어있는 컵의 번호를 출력함 , 공이 사라져서 컵 밑에 없는 경우에는 -1 출력
💡알고리즘 설계
- 선택한 컵과 공이 들어있는 컵을 비교해서 같은 컵인지 확인함
- 공이 들어있는지 정해진 횟수에 따라 탐색하다가 최종 결과값 출력
💡CODE
const fs = require("fs");
const cup = fs.readFileSync(0,"utf8").toString().split("\n");
const num = parseInt(cup[0]);
function Change(cup, result) {
let [cup1, cup2] = cup.toString().trim().split(" ");
if (cup1 == result) {
result = cup2;
} else if (cup2 == result) {
result = cup1;
}
return result;
}
function Ball() {
let result = 1;
for (let i = 1; i <= num; i++) {
if (i >= cup.length || !cup[i]) {
return -1;
}
result = Change(cup[i], result);
}
return result <= 0 ? -1 : result;
}
console.log(Ball());
💡시간복잡도
💡 틀린 이유 & 틀린 부분 수정
공이 사라져서 컵 밑에 없는 경우에는 -1을 출력하는 부분을 구현 안함
💡 다른 풀이 or 기억할정보
-
백준 20546 : 기적의 매매법 (0) | 2025.01.14 |
---|---|
개념 정리 : 시간복잡도 정리 (1) | 2025.01.13 |
백준 1051 : 숫자 정사각형 (0) | 2025.01.11 |
백준 1018 : 체스판 다시 칠하기 (0) | 2025.01.10 |
백준 14717 : 앉았다 (0) | 2025.01.09 |