코딩테스트/백준
[백준]2636번 치즈 - Java
문제 https://www.acmicpc.net/problem/2636 2636번: 치즈 첫째 줄에는 사각형 모양 판의 세로와 가로의 길이가 양의 정수로 주어진다. 세로와 가로의 길이는 최대 100이다. 판의 각 가로줄의 모양이 윗 줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진 www.acmicpc.net 풀이 이 문제도 DFS로 풀었음! 다 풀고 나서 다른 풀이도 봤는데 BFS 풀이가 더 많이 보였던 것 같음 ㅎㅎ 암튼 그건 그렇고 외부 공기에 접촉한 치즈와 그렇지 않은 치즈를 판단하는게 포인트! 판의 가장자리는 치즈가 놓여있지 않으므로 거기서부터 DFS를 돌리면 외부공기를 판별할 수 있다! 그렇게 해서 1시간마다 외부 공기를 판별하고, 치즈 녹이고, 방문 체크 배열을 초기화하고 이 과정을 반복했음!..
[백준]2667번 단지번호붙이기 - Java
문제 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 풀이 요즘 DFS 문제를 많이 풀려고 함! 이 문제도 최근에 풀던 문제랑 비슷하다고 볼 수 있겠음 내 생각에 포인트는 DFS로 단지가 몇개인지 판단한 후 단지에 번호를 어떻게 붙이고 어떻게 해당 단지에 속하는 아파트의 개수를 세느냐! 인 것 같음 나는 해당 단지에 속하는 아파트의 개수를 세는 함수를 따로 만들었고 그 함수 안에서 새로 배열을 만들고 그 배열의 인덱스를 증가시켜 정렬한 후 반환해..
[백준]1388번 바닥 장식 - Java
문제 https://www.acmicpc.net/problem/1388 1388번: 바닥 장식 형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나 www.acmicpc.net 풀이 dfs로 풀었음! 개인적으로 이 문제의 포인트는 한 방향(행 방향이든, 열 방향이든)으로만 탐색하면 되기 때문에 static으로 방향 벡터를 선언해줄 필요가 없음! 재귀를 하러 들어가기 전에 현재의 칸이랑 재귀를 들어갈 칸이랑 미리 비교를 해서 들어갈지 말지 판단을 할 것! 이렇게 두 가지임!!! 어렵지 않게 풀었음! 더 자세한건 주석으로 ㄱㄱ 코드 // 1388번 바닥 장식 // https:..
[백준]2573번 빙산 - Java
문제 https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 풀이 dfs로 풀었음 막 어렵진 않고 차근차근 하면 잘 풀 수 있을 것 같은 그런 느낌적인 느낌 근데 나는 좀 더럽게 푼 것 같다,,, ㅎㅎ 더 쉽고 짧게 풀 수 있는 방법이 있을 것 같음! 개인적인 이 문제의 포인트는 빙산의 인접한 부분에 0이 있다고 그걸 계산하면서 진행하면 현재 칸이 0이 될 경우 다음 칸은 현재 칸의 0이 영향을 미쳐서 인접한 0의 개수가 늘어나기 때문에 인접한 ..
[백준]13458번 시험 감독 - Java
문제 https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 풀이 걍 쉬운 문제라서 풀었는데 자꾸 틀렸다. 그래서 다시 문제를 보니 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) 주어지는 값들의 ..
[백준]8320번 직사각형을 만드는 방법 - Java
문제 https://www.acmicpc.net/problem/8320 8320번: 직사각형을 만드는 방법 상근이는 변의 길이가 1인 정사각형 n개를 가지고 있다. 이 정사각형을 이용해서 만들 수 있는 직사각형의 개수는 총 몇 개일까? 두 직사각형 A와 B가 있을 때, A를 이동, 회전시켜서 B를 만들 수 www.acmicpc.net 풀이 머리로만 풀려고 하다가 좀 헤맨 것 같다 ㅠㅠ 손으로 몇번 끄적이면서 그림 그려보면 쉽게 답을 구할 수 있을 듯???? 코드 // 8320번 직사각형을 만드는 방법 // https://www.acmicpc.net/problem/8320 package BAEKJOON; import java.io.BufferedReader; import java.io.IOException..
[백준]17413번 단어 뒤집기 2 - Java
문제 https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 풀이 어려운 문제는 아닌 듯하다 코드의 아랫부분에 전체 주석처리 되어 있는 코드가 있는데 문제 똑바로 안읽고 그렇게 풀었다가 시간만 날렸다 ㅠㅠㅠ 매번 문제 똑바로 읽어야지 하면서 매번 안그러는 것 같다,,,, 암튼 내 생각에 이 문제의 포인트는 flag를 하나 둬서 그걸로 현재 탐색하는 위치가 태그 안쪽인지 바깥쪽인지를 정해주는 부분이라고 생각한다! 그 부분..
[백준]2798번 블랙잭 - Java
문제 https://www.acmicpc.net/problem/1592 1592번: 영식이와 친구들 예제 1의 경우 일단 1번이 공을 잡는다. 1번은 공을 한 번 잡았기 때문에, 공을 3번에게 던진다. 3번은 공을 한 번 잡았기 때문에, 공을 5번에게 던진다. 5번은 2번에게 던지고, 2번은 4번에게 던진다 www.acmicpc.net 풀이 얘도 쉬운 문제임! 그냥 완전 탐색으로 첨부터 싹 돌려주면 됨! 그나마 주의할 점은 3중 for문 안에서 인덱싱에 주의해야 된다는 점?? 코드 // 2798번 블랙잭 // https://www.acmicpc.net/problem/2798 package BAEKJOON; import java.io.BufferedReader; import java.io.IOExcepti..