본문 바로가기

코딩테스트_백준풀이54

적록색약 #10026 c++ 풀이 https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 부끄럽지만, 빠르게 풀기위해서 함수를 비효율적으로 사용해서 풀었다. #include #include using namespace std; int n_R = 0; int n_R1 = 0; int n_G = 0; int n_B = 0; int n_B1 = 0; int N; int graph[101][101]; int graph2[101][101]; //적록색맹의 그래프 int visited[1.. 2023. 11. 1.
단지번호붙이기 #2667 c++ 풀이 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 먼저, 그래프 탐색알고리즘에서 전에 풀었던 문제의 코드(미로탐색)를 이것저것 변형해보면서 정답에 가까워졌다. bfs문제를 풀때는 bfs를 구현하고 자료구조를 추가해가면서 문제를 푸는 것이 유리했다. #include #include #include #include using namespace std; int graph[101][101]; int visited[101][101]; int ans[101].. 2023. 10. 29.
미로탐색 #2178 c++ 문제풀이 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net bfs문제는 이제 유형을 보면 바로 알아챌 수 있다. 알게 된 점은 구현에서 이제 큐나 다른 것을 건들이지 않고(bfs의 최초 형태를 살리는 방향으로), 다른 자료구조를 추가해서 탐색에 대한 기록을 해주는 것이 유리하다는 것을 깨달았다. 경로를 기록하면서 갈수있는 방향에 대한 ans값을 기록한다. 그리고, 도착지점의 ans값을 출력하면 된다. #include #include #include #include using namesp.. 2023. 10. 29.
1로 만들기 #1463 c++ 풀이 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 먼저 그냥 재귀가 떠올라서 막 코딩했을때, 시간초과가 났다. dp라는 것을 제대로 이해하지 못한것이었다. #include using namespace std; /* 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. */ int dp(int x, int cnt) { in.. 2023. 10. 28.