알고리즘/it 취업을 위한 알고리즘 문제풀이 92

85. 수식만들기(삼성 SW역량평가 기출문제 : DFS활용)

문제 길이가 N인 자연수로 이루어진 수열이 주어집니다. 수열의 각 항 사이에 끼워넣을 N-1개의 연산자가 주어집니다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있습니다. 수열의 순서는 그대로 유지한 채 각 항사이에 N-1개의 연산자를 적절히 배치하면 다양한 수 식이 나옵니다. 예를 들면 수열이 1 2 3 4 5이고 덧셈(+) 1개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 일 때 만들 수 있는 수식은 많은 경우가 존재한다. 그 중 1+2*3-4/5와 같이 수식을 만들었다면 수식을 계산하는 결과는 연산자 우선순위를 따지 지 않고 맨 앞쪽 연산자부터 차례로 계산한다. 수식을 계산한 결과는 1이다. N길이의 수열과 N-1개의 연산자가 주어지면 만들 수 있는 수식들..

84. 휴가(삼성 SW역량평가 기출문제 : DFS활용)

문제 카운셀러로 일하고 있는 현수는 오늘부터 N+1일째 되는 날 휴가를 가기 위해서, 남은 N일 동 안 최대한 많은 상담을 해서 휴가비를 넉넉히 만들어 휴가를 떠나려 한다. 현수가 다니는 회사에 하루에 하나씩 서로 다른 사람의 상담이 예약되어 있다. 각각의 상담은 상담을 완료하는데 걸리는 날수 T와 상담을 했을 때 받을 수 있는 금액 P로 이루어져 있다. 만약 N = 7이고, 아래와 같이 예약이 잡혔있다면 1일에 잡혀있는 상담은 총 4일이 걸리며, 상담했을 때 받을 수 있는 금액은 20이다. 만약 1일 에 예약된 상담을 하면 4일까지는 상담을 할 수가 없다. 하나의 상담이 하루를 넘어가는 경우가 많기 때문에 현수는 예약된 모든 상담을 혼자 할 수 없어 최대 이익이 나는 상담 스케쥴을 짜기로 했다. 휴가를..

83. 복면산 SEND+MORE=MONEY

SEND+MORE=MONEY 라는 유명한 복면산이 있습니다. 이 복면산을 구하는 프로그램을 작성하세요. 출력형태 9 5 6 7 + 1 0 8 5 --------- 1 0 6 5 2 #include using namespace std; int a[8], check[10]; int send(){ return a[6]*1000 + a[1]*100 + a[3]*10 + a[0]; } int more(){ return a[2]*1000 + a[4]*100 + a[5]+10 + a[1]; } int money(){ return a[2]*1000 + a[4]*100 + a[3]*100 + a[1]*10 + a[7]; } void DFS(int L){ if(L==8){ if(send()+more()==money()){..