[BOJ] 2529번 - 부등호 (Java)
🛠️ 문제 🛠️ 🗒️ 설명 🗒️ 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족하는 수열을 구해야한다. → 이 수열을 구하기 위해 백트래킹 방식을 사용한다. 각 부등호의 앞뒤에 들어가는 숫자는 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }중에서 선택해야 하며 선택된 숫자는 모두 달라야 한다. → 백트래킹을 할 때 사용할 배열은 위와 같고 중복되지 않는 값들로 이뤄지도록 visited 배열을 사용한다. 이제 여기서 모든 부등호 관계를 만족하는 수열 중 가장 큰 값과 가장 작은 값을 구해야한다. 이때 주의할 점은 첫 자리가 0인 경우도 정수에 포함해야한다. 즉, 0123과 같이 출력해야한다. 나는 이를 쉽게 다루기 위해 문자열로 답을 구하기로 했다. 그러나 최솟값..
2024. 3. 11.
[BOJ] 2477번 - 참외밭 (Java)
🛠️ 문제 🛠️ 🗒️ 설명 🗒️ 참외밭은 ㄱ자 모양이거나 ㄱ자를 90도, 180도, 270도 회전한 모양(┏, ┗, ┛ 모양)의 육각형 밭의 경계(육각형의 변)는 모두 동서 방향이거나 남북 방향 → 밭의 모양은 항상 그림과 같은 육각형이다.(회전할 수 있다.) 그러므로 밭의 넓이는 [전체적인 사각형의 넓이 - 빠져야할 작은 사각형의 넓이] 이다. 우리는 가장 긴 가로의 길이와 세로의 길이, 빼야할 가로의 길이와 세로의 길이를 구해야한다. 1. 가장 긴 가로와 세로 구하기 입력받을 때 동쪽은 1, 서쪽은 2, 남쪽은 3, 북쪽은 4 이므로 1, 2일 경우 가로 확인, 3,4일 경우 세로 확인 2. 빼야할 가로와 세로 구하기 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 입력을 받는다...
2024. 2. 19.