알고리즘 풀이/백준(Boj)
백준(BOJ) 4연산
100win10
2019. 10. 16. 02:04
문제 : https://www.acmicpc.net/problem/14395
14395번: 4연산
첫째 줄에 정수 s를 t로 바꾸는 방법을 출력한다. s와 t가 같은 경우에는 0을, 바꿀 수 없는 경우에는 -1을 출력한다. 가능한 방법이 여러 가지라면, 사전 순으로 앞서는 것을 출력한다. 연산의 아스키 코드 순서는 '*', '+', '-', '/' 이다.
www.acmicpc.net
풀이 :
t가 10억이지만 n은 2*n 의 형태나 n^2 의 형태이기 때문에 탐색하는 n의 수는 많지 않고 BFS로 접근할 수 있다.
queue<pair<long long, string>> q를 생성한후에 * + - / 각각의 순서대로 결과값과 그때의 붙는 부등호의 값을
큐에 넣는다.
조건은 10억이하일 경우 q에 넣어야 하고 나눌때에 n은 0이여서는 안된다. 또 같은 값을 다시 넣지 않기 위해
stl set을 통하여 중복을 막아주자.
코드 ( C++ )