[JS] 백준 - 카드2 (2164번)

DARTZ·2023년 10월 19일
0

알고리즘

목록 보기
135/135

문제 링크

풀이

맨처음에는 단순하게 shift와 push를 통해서 큐를 구현했지만 시간초과가 걸렸습니다.
다른 분들 풀이는 대부분 링크드 리스트를 구현해서 푸시던데 단순하게 배열의 idx와 push를 통해서 구현했습니다.

코드

const fs = require("fs");
const stdin = (
	process.platform === "linux"
		? fs.readFileSync("/dev/stdin").toString()
		: fs.readFileSync("./input.txt").toString()
).split("\n");

const input = (() => {
	let line = 0;
	return () => stdin[line++];
})();

const num = Number(input());
const nums = Array.from(Array(num), (_, i) => i + 1);
let count = 0; // 인덱스
let answer = 1; // num이 1일 경우 정답은 1

while (nums.length != 1) { // 1일 경우 실행시키지 않음
	count++; // 일단 index 1증가 시키고
	nums.push(nums[count]); // 맨 뒤로 보낼 카드를 배열에 push 시켜줌
	const temp = nums[count]; // 맨뒤로 보낸 카드를 임시로 저장해놓고
	count++; // index 증가
	if (nums[count] == temp) { // 맨 밑 카드와 현재 인덱스의 카드가 같다면
		answer = temp; // 정답에 넣고 break;
		break;
	}
}

console.log(answer);
profile
사람들이 비용을 지불하고 사용할 만큼 가치를 주는 서비스를 만들고 싶습니다.

0개의 댓글