| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- 자바 orm
- 패러다임 불일치
- presigned url
- 이미지 업로드
- AWS
- 백준 10815 # 백준 Java
- Flask
- spring boot
- S3
- session
- 관점 지향 프로그래밍
- 개발 프로젝트
- fastapi
- wss 연결 실패
- jwt
- spring websocket nginx 설정
- logout
- validation
- oauth2.0
- 스프링부트
- OpenAI API
- @Valid
- 예외 처리
- GoormIDE
- 도메인 주도 개발
- ec2 nginx websocket reverse proxy
- 소셜 로그인
- springboot
- CustomException
- 구글 로그인
Archives
- Today
- Total
개발세발은 안되요
[C++] BJO 14888 : 연산자 끼워넣기 본문
문제
https://www.acmicpc.net/problem/14888
풀이
BFS를 활용한 완전탐색으로 풀었다.
코드
#include <iostream>
#include <queue>
using namespace std;
int n;
int a[100];
int method[4]; // 0: +, 1:-, 2:*, 3:/
int min_ans = 100000000, max_anx = -100000000;
struct State{
int cal, idx;
int m[4];
};
int main()
{
cin >> n;
for(int i=0; i<n; i++){
cin >> a[i];
}
for(int i=0; i<4; i++){
cin >> method[i];
}
queue<State> q;
q.push({a[0], 1, {method[0], method[1], method[2], method[3] }});
while(!q.empty()){
State cur = q.front();
q.pop();
if(cur.idx >= n){
if(cur.cal > max_anx) max_anx = cur.cal;
if(cur.cal < min_ans) min_ans = cur.cal;
}
else{
for(int i=0; i<4; i++){
if(cur.m[i] > 0){
switch(i){
case 0 :
q.push({cur.cal + a[cur.idx], cur.idx+1, {cur.m[0]-1,cur.m[1], cur.m[2], cur.m[3]}});
break;
case 1 :
q.push({cur.cal - a[cur.idx], cur.idx+1, {cur.m[0],cur.m[1]-1, cur.m[2], cur.m[3]}});
break;
case 2 :
q.push({cur.cal * a[cur.idx], cur.idx+1, {cur.m[0],cur.m[1], cur.m[2]-1, cur.m[3]}});
break;
case 3 :
int next_cal;
if(cur.cal < 0) {
next_cal = -(-cur.cal / a[cur.idx]);
}
else next_cal = cur.cal / a[cur.idx];
q.push({next_cal, cur.idx+1, {cur.m[0],cur.m[1], cur.m[2], cur.m[3]-1}});
break;
}
}
}
}
}
cout << max_anx << "\n";
cout << min_ans << "\n";
return 0;
}'알고리즘 > 백준' 카테고리의 다른 글
| [C++] BJO 17142 : 연구소 3 (0) | 2025.12.01 |
|---|---|
| [C++]BJO 14891 : 톱니바퀴 (0) | 2025.11.28 |
| [JAVA] BJO 9466 : 텀 프로젝트 (0) | 2025.11.19 |
| [C++] 백준 2931 : 회의실 배정 (0) | 2025.09.11 |
| [C++] 백준 2638 : 치즈 (0) | 2025.09.05 |