vidigummy KAU/2017 end. ~ 2018 겨울방학 알고리즘

백준 기초 알고리즘 2강

vidi 2018. 1. 16. 17:47

백준 알고리즘 2강(스택)을 들었다. 그래서 문제를 다 풀까 하다가 예전에 C로 스택을 구현하면서 다시는 하지 않겠다고 다짐했던 기억이 나서 그건 건너 뛰고 다른 세 문제(BOJ 9012, 10799, 1406)을 풀고 치우기로 했다.


먼저 BOJ 9012

인데 백준님께서는 이걸 스택을 사용하여 풀라고 하셨다. 그러셨다. 사실 배열만으로 풀 수 있는 문제지만 그러라고 하셨다. 난 모른다.

솔직히 말해서 함수를 쓸 필요도 없었다. 함수 네이밍 센스가 매우 구린것도 인정한다. 판독 함수면서 getline이라니. 정말 구리다. 어쨌든 이렇게 만든 이유는 순전히 습관이다. 필자는 암기력이 매우 약하다. 그렇기 때문에 문제를 풀다가 한번 놓쳐버리면 바로 사라져버린다. 그렇기에 언제든 쓸 수 있는 함수를 만들어 놓고 사용하는 습관이 생긴 것 이다. C언어 교수님(객체지향 전공)께서는 이런 코딩 스타일을 좋아(다시 말하지만 C언어 수업이다.) 하시기도 하셨고 추천하셨는데 그 분을 만나서 더 심해진 경향도 없지않아 있는 것 같다. 어쨌든 결과는 잘 나왔으니 땡큐.


BOJ 10799 쇠막대기


이 문제를 품에 있어서, 발상이 알파이자 오메가라고 생각한다. 스택에 쌓여있는 막대기 수 만큼 레이저가 쏴질 때 마다 총 합에다가 더해주면 되고, 괄호가 끝나면 +1을 해주면 되는 문제다.