[백준 C++] 2630 : 색종이 만들기
CSE/코딩 문제풀이2025. 2. 25. 15:31[백준 C++] 2630 : 색종이 만들기

https://www.acmicpc.net/problem/2630예시로 주어진 사진과 함께 생각해보면 2의 배수로 주어지는 N이 나눌때마다 2 / N로 계속 줄어드는 것을 볼 수 있다. 즉 첫 시작점만 정해주게 되면 줄어드는 값을 더해 끝점을 구할 수 있고, 시작점과 끝점 안에 있는 내용을 확인하여 색이 모두 일치하는지 보면 된다.#include #include using namespace std;int N;vector> board;vector answer;void solve(int sX, int sY, int size){ if (size == 0) return; bool bClear = true; int color = board[sY].at(sX); for (int y = sY; y > N; boar..

[백준 C++] 11727 : 2×n 타일링 2
CSE/코딩 문제풀이2025. 2. 24. 18:59[백준 C++] 11727 : 2×n 타일링 2

https://www.acmicpc.net/problem/11727이전 글과 마찬가지로 규칙을 찾았다. N이 1일때 1, 2일때엔 3, 3일때엔 5, 4일때엔 11..짝수일 때에는 전 수의 2배 + 1, 홀수일 때에는 전 수의 2배 - 1로 되어 이 식을 적용하였다.#include #include using namespace std;int main(){ vector list; int n; cin >> n; list.push_back(0); list.push_back(1); for (int i = 2; i

[백준 C++] 11726 : 2×n 타일링
CSE/코딩 문제풀이2025. 2. 23. 15:59[백준 C++] 11726 : 2×n 타일링

https://www.acmicpc.net/problem/11726규칙을 찾아내면 된다. N이 1일 때엔 방법이 한 개. N이 2일 때엔 방법이 2개, N이 3일 때엔 방법이 3개 ....좀 진행해보면 이전 두 수를 더한 값이 정답이라는 것을 알 수 있다.#include #include using namespace std;int solve(int N){ vector list = vector(1001, -1); list[1] = 1; list[2] = 2; for (int i = 3; i > N; cout

[백준 C++] 9375 : 패션왕 신해빈
CSE/코딩 문제풀이2025. 2. 23. 12:54[백준 C++] 9375 : 패션왕 신해빈

https://www.acmicpc.net/problem/9375 종류에 따라 만들 수 있는 조합의 갯수를 찾아야한다. 예를 들어 모자가 2개, 바지가 3개 있다고 했을 시 가능한 방법은(모자1, 모자2, 모자X) * (바지1, 바지2, 바지3, 바지X) 으로 조합을 만들 수 있다.다만, 모두 입지 않은 경우는 제외해야 하기 때문에 모자X와 바지X를 입은 경우를 빼 주어야 정답이 된다.#include #include using namespace std;int solve(){ map list; int value, answer = 1; cin >> value; for (int i = 0; i > name >> type; if (list.find(type) == list.end()) list.insert..

[백준 C++] 9095 : 1, 2, 3 더하기
CSE/코딩 문제풀이2025. 2. 22. 17:46[백준 C++] 9095 : 1, 2, 3 더하기

https://www.acmicpc.net/problem/9095DP는 점화식. 1과 2, 3으로 구성되어 나타내는 방법을 구하는 문제이다.점화식을 생각해 내는 것이 어렵지만 1, 2, 3을 사용하는 점을 생각하여 도출해 내야 한다.#include #include using namespace std;vector answer = vector(12, -1);void cal(){ answer[1] = 1; answer[2] = 2; answer[3] = 4; for (int i = 4; i > T; cal(); for (int i = 0; i > input; cout 하나의 수에 대해 방법을 구할 때에 처음에 1이 오게 되면, 남은 숫자는 N - 1의 방법 합이 된다.2가 오게 되면, 남은 숫자는 N - 2..

[백준 C++] 2579 : 계단 오르기
CSE/코딩 문제풀이2025. 2. 22. 13:26[백준 C++] 2579 : 계단 오르기

https://www.acmicpc.net/problem/2579다이나믹 프로그래밍을 이용해서 풀어야 하는 문제이다. #include #include using namespace std;vector stair;vector answer;int num;void init(){ cin >> num; answer = vector(num + 1, -1); stair = vector(num + 1, -1); for (int i = 1; i > temp; stair[i] = temp; }}void solve(){ answer[1] = stair[1]; answer[2] = answer[1] + stair[2]; answer[3] = max(stair[1] + stair[3], stair[2] + stair[3]); ..

[백준 C++] 1620: 나는야 포켓몬 마스터 이다솜
CSE/코딩 문제풀이2025. 2. 21. 18:44[백준 C++] 1620: 나는야 포켓몬 마스터 이다솜

https://www.acmicpc.net/problem/1620시간초과에 걸리지 않기 위해서 해시 맵을 사용해야 한다. #include #include #include #include using namespace std;int main(){ vector answer; vector nameList; map idxList; int M, N; cin >> M >> N; for (int i = 0; i > str; nameList.push_back(str); idxList.insert(make_pair(str, i + 1)); } for (int i = 0; i > str; if (str[0] >= 'A' && str[0] second)); else answer.push_back(nameList[s..

[백준 C++] 7576 : 토마토
CSE/코딩 문제풀이2025. 2. 21. 14:46[백준 C++] 7576 : 토마토

https://www.acmicpc.net/problem/7576BFS로 푸는 문제고, 시간초과에 유의해야 한다. visted를 bool로 하지 않고 int값으로 하여, 이 전에 있던 곳에서 +1을 해 날짜를 더해나가는 방식으로 구현하였다.#include #include #include using namespace std;int x, y, answer = 0;vector> list;vector> visited;int dx[4] = { -1 , 0, 1, 0 };int dy[4] = { 0, 1, 0, -1 };void init(){ int input; cin >> x >> y; list = vector>(y, vector(x, 0)); visited = vector>(y, vector(x, 0)); fo..

2025. 1. 13. 19:40SeadenRing

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 해주세요.

2025. 1. 13. 19:35Glitch

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 해주세요.

image