미새문지

크래프톤 정글 week07, day57 - 잔디심기, 바이너리 세마포어로 alarm_sleep 진행 중 본문

크래프톤 정글/TIL

크래프톤 정글 week07, day57 - 잔디심기, 바이너리 세마포어로 alarm_sleep 진행 중

문미새 2024. 3. 5. 00:44
728x90

오늘의 잔디심기

백준
17204
자바스크립트
실버3
죽음의 게임
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().split("\n");

const TheGameOfDeath = (N, K) => {
    const order = [];
    for(let i = 1; i <= N; i++) {
        order.push(Number(input[i].replace(/\r/g, '')));
    }

    let death = 0;
    let count = 0;
    let visited = Array(N).fill(0);

    while(true) {
        if(death === K) {
            console.log(count);
            break;
        }
        if(visited[death]) {
            console.log(-1);
            break;
        }
        visited[death] = 1;
        death = order[death];
        count++;
    }
}

const [N, K] = input[0].split(" ").map(Number);

TheGameOfDeath(N, K);

처음 입력값을 받아올 때 for문 대신 "const order = input.slice(1).map(Number);" slice함수를 사용해서 특정 인덱스를 시작으로 입력값을 한번에 받아올 수 있다. 코드 줄이기 가능

 

오늘 재희님이 예비군 훈련을 가서 강민님이랑 열심히 대가리 박고 있다.  pintOS에 사용된 바이너리 세마포어로 release를 사용해 기존 쓰레드를 잠금 해제하고 다음 쓰레드 할당과 acquired로 다시 잠금해 쓰레드 관리를 하려했는데 무한 실패 후 정신이 나가는 중.

내일 교수님의 강의가 있어 오늘 최대한 박아보면 내일 좀 더 얻는게 있지 않을까 하여 열심히 하고 있다.

재희 강민 성준 레츠고

 

학습 시간 : 10 ~ 25시

728x90