본문 바로가기
활동/이노베이션 캠프

[TIL] 230527 - TIL 작성 특강, 백준 알고리즘 문제 풀이

by gardenii 2023. 5. 28.

오늘 한 것

- TIL 작성 특강 듣기 (강민철 튜터님)
- 백준 알고리즘 문제 풀이
(0525~0527 까지)
1011번 : Fly me to the Alpha Centaur
1002번 : 터렛
10828번 : 스택
10773번 : 제로
18258번 : 큐2
1874번 : 스택 수열

TIL 작성 특강 정리

< TIL의 필요성 >

- TIL이란? Today I Learned -> 내가 오늘 배운 것을 기록하는 것
- 채용이란? 앎의 증명
- 아는 것을 증명하기 위해서는? 일단 알아야 하고, 그것을 까먹지 않아야 함
- 즉 알게 된 것을 까먹지 않도록 정리해 둠으로써 증명으로 사용하는 것 !

<TIL 작성 방법>

- 꼭 있어야 하는 것 : 문 시 해 알 

  1. 어떤 제 상황이 있었는지
  2. 문제를 해결하기 위해 도해 본 것들 (삽질 ⛏️)  < 
  3. 어떻개 결했는지
  4. 무엇을 새롭게 게 되었는지  < 

- 특히 2, 4번을 자세히 쓰기

< 필요 없는 것 >

- 예쁘게 꾸미기 (FE 제외)
- 코드 통째로 붙여넣기
- 감성적인 글
- 강의노트 복붙, 요약

< WIL >

- WIL이란? Weekly I Learned -> 내가 주간 배운 것을 기록하는 것
- TIL 회고 -> 이번주에 알게 된 점 총정리
- 다음주 목표 세우기
- 이번주 목표 달성 여부


백준 문제풀이

1874번 : 스택 수열 (중상)

https://www.acmicpc.net/problem/1874

1874번: 스택 수열

1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.

www.acmicpc.net

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

const test = Number(input[0]);

let stack = [];
let result = '';
let current = 1;

for (let i = 1; i <= test; i++){
    while (current <= Number(input[i])) {
        stack.push(current);
        result += "+\n"
        current++;
    }

    let p = stack.pop();
    if(p != Number(input[i])) {
        result = "NO";
        break;
    }
    result += "-\n";
}

console.log(result);