본문 바로가기

HWK블로그132

17070번 - 파이프 옮기기 골드 4티어 파이프옮기기 라는 문제이다.각 자세별로 아래와 같이 이동 가능하고 각 파이프가 차지하는 칸은 색칠한 곳과 같다.이때 파이프가 이동 할 수 있는 경로의 경우의 수를 구하는 문제이다.입출력은 아래와 같으며 파이프는 좌측 상단 두칸에 가로로 출발한다.1이 포함된 칸은 이용하지 못한다.그렇다면 조건은 아래와 같다는 것을 알 수 있다. 1. 파이프의 끝이 우측 하단에 도달하면 경우의 수 + 1이다.2. 다음에 이동할 칸이 1이면 안된다.3. 가로로 이동할 때(가로 또는 대각선) x 좌표만 +1이 된다.(x좌표는 N보다 작아야 함)4. 세로로 이동할 때(세로 또는 대각선)는 y 좌표만 -1이 된다.(y좌표는 0보다 커야 함)5. 가로 세로 대각선 모두 대각선으로 이동 가능하다.     하지만 대각선으로.. 2024. 7. 18.
1038번 - 감소하는 수 골드 5티어 감소하는 수라는 문제이다.예를들어 987, 210은 감소하는 수이지만, 100, 200은 감소하는 수가 아니다.N을 입력받고 N번째 감소하는 수를 구하는 문제이다. 문제를 보면 감소하는 수 중 가장 큰 수는 9,876,543,210이다.크기가 정해져있고, 몇번 써보다보면 감소하는 수는 많지 않다는 느낌이 올 것이다.즉, list에 감소하는 수를 모두 정리해주고, 그 list에서 해당 감소하는 수를 가져다가 쓰면 된다. list를 만드는 방법은 어떤 수를 맨 앞에 올 수로 정하고, 그 뒤에는 그 수보다 작은 수만 넣어주면 될 것이다.그리고 한번 정렬 해주고 N번째 요소를 빼주면 된다.그렇게 나온 식은 다음과 같다.import java.util.*;public class Main { sta.. 2024. 7. 18.
2667번 - 단지번호붙히기 단지번호붙히기라는 문제이다. 간단하게 설명하자면, 아래 그림과 같이 1이 모여있는 부분의 크기를 찾고 오름차순으로 정렬하라는 문제이다.생각보다 오래걸린 문제였다. 단순하게 주변을 둘러보며 찾는것을 꺼리고 뭔가 더 좋은 방법이 있지 않을까 너무 오랜시간 고민했기 때문이다. 혹시나 하는 마음에 풀이를 봤더니... 좀 실망스러웠다. 정말 단순하게 찾는 문제였기 때문이다.그렇게 방법을 알고 나서 문제를 풀었고, 아래와 같은 코드가 나왔다.import java.io.*;import java.util.*;public class 단지번호붙이기_2667번 { static int N; static int[][] map; static boolean[][] visited; static int[] dx .. 2024. 7. 18.
2293번, 2294번 - 동전1,2(규칙성 찾기) 2293 - 동전1주어진 동전들로 값 k를 만들 수 있는 경우의 수를 구하는 문제이다.처음에는 재귀를 이용해 해당 값을 만들 수 있는 모든 경우의 수를 구했다,.하지만 재귀는 너무 비효율적이였고, 값이 커질수록 너무도 많은 시간이 필요했다.더보기import java.util.*;public class 동전1_2293번_시간초과 { static int n, k; static int count = 0; static int[] coins; public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); k = sc.nextInt(); .. 2024. 7. 17.