분류 전체보기 (10) 썸네일형 리스트형 BOJ 1918 후위 표기식 [C++] 고생 많이 한 문제였다. 먼저 처음 접하는 내용이라 문제 자체가 직관적으로 와닿지가 않았다. 그래서 작게 분해해서 풀기로 했다. 알고리즘 분류는 스택이라 되어있는데 재귀함수를 사용했다. 뭐 재귀함수도 결국 스택이니까. 수학에서 연산자 우선순위는 () > */ > +-순서이다. proc 함수 내부에서 이 세 연산자를 순서대로 처리하도록 하고 괄호의 경우 괄호 내부의 식을 다시 proc 함수의 파라미터로 전달해 재귀호출하였다. 괄호 안에 괄호가 또 있고 짝이 맞지 않는 닫힘괄호에 의해 잘못된 ss값을 구하는 것을 방지하기 위해 스택과 비슷한 원리로 열림 괄호는 n++, 닫힘괄호는 n--를 해주었다. 그리고 괄호를 처리하여 각각의 문자열을 문자열 벡터 vec에 넣어주었다. vec의 각 값은 문자 하나가 될 수.. BOJ 9663 N-queen [C++] 처음 글을 써본다. 브루트포스 알고리즘. 무식하게 푼다는 뜻이다. 근데 정말 무식하게 풀어서 이문제를 3시간 걸렸다. 먼저 체스를 해본적이 없어서 퀸이 어떻게 움직이는지 알아봤다. 무식하게 순서만 다른 같은 경우의 수를 확인을 못했다. 그리고 또 무식하게 O(n^2)짜리를 재귀함수 안에 넣었다. 이 문제는 위에서 한 행씩 내려가면서 퀸을 놓을 위치 한개씩을 선택하면 된다. 그 과정에서 두 대각선 방향과 이미 방문된 열인지 체크해주면 된다. 이 과정을 좀 쉽게 하기 위해 수학을 곁들이면 좌표평면에서 x,y절편이 같도록 기울기가 -1인 직선을 그으면 그 직선 위 모든 좌표의 x,y좌표의 합은 일정하다. 이 원리를 적용해 대각선 방문 여부를 쉽게 저장할 수 있다. 아래는 시행착오가 담긴 무식한 코드 + 디버깅.. 이전 1 2 다음