본문 바로가기

프로그래밍/알고리즘5

[백준] 2206 - 벽 부수고 이동하기 ( bfs ) https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센다. 만약에 이동하는 도중에 한 개의 벽을 부수고 이동하는 것이 좀 더 경로가 짧아진다면, 벽을 한 개 까지 부수고 이동 www.acmicpc.net 2178번 미로탐색 처럼 단순한 bfs문제라 생각해서 bfs로 접근했다. 충돌판정은 break_cnt 에 기록해서 풀었는데.... 2020. 3. 7.
[백준]2579번 계단오르기 - dp 기초 문제 : https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다. 계단 오르는 데는 다음과 같은 규칙이 있다. 계단은 한 번에 한 계단씩 www.acmicpc.net dp라는 분야를 알고 dp기초단계를 풀면서 알고리즘의 재미를 느끼게 됨.. 나는 다음과같이 풀었다. overlap은 연속된 계단 횟수이다. 비용 .. 2020. 2. 21.
[백준] 9012번 괄호 https://www.acmicpc.net/problem/9012 9012번: 괄호 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(conc www.acmicpc.net 예전에 후위표기법을 이용해서 수식을 입력받는 프로그램을 만들었던게 생각나서 금방풀은문제. 단순히 stack에 (를 쌓는다. )가 나왔을때 s.. 2019. 12. 21.
[백준] 1003번 피보나치함수 0이 출력되는갯수, 1이 출력되는갯수를 구해라. fibo(3) 의 경우 fibo(2) 와 fibo(1)로 나뉜다. fibo(2) 의 출력갯수와 fibo(1)의 출력갯수의 합만큼 출력한다. fibo(4) 또한 fibo(3)와 fibo(2)로 나뉘며 결국 fibo(3)의 출력갯수와 fibo(2)의 출력갯수의 합만큼 출력된다. 단순히 0에대한 피보나치 1에대한 피보나치만 구해주면 되는문제이다. 의외로 정답률이 낮다.. #include #include #include typedef long long big_int; void getfiboCount(big_int n, big_int& out0, big_int& out1){ if (n == 0){ out0 = 1; out1 = 0; }else if (n == 1){.. 2019. 12. 16.