Cute Hello Kitty 3
본문 바로가기

알고리즘5

[Baekjoon/JAVA] 3020 개똥벌레 (이분 탐색) 문제개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 번갈아가면서 등장한다. 아래 그림은 길이가 14미터이고 높이가 5미터인 동굴이다. (예제 그림)이 개똥벌레는 장애물을 피하지 않는다. 자신이 지나갈 구간을 정한 다음 일직선으로 지나가면서 만나는 모든 장애물을 파괴한다.위의 그림에서 4번째 구간으로 개똥벌레가 날아간다면 파괴해야하는 장애물의 수는 총 여덟개이다. (4번째 구간은 길이가 3인 석순과 길이가 4인 석순의 중간지점을 말한다) 하지만, 첫 번째 구간이나 다섯 번째 구간으로 날아간다면 개똥벌레는 장애물 일곱개만 파괴하면 된다.동굴의 크기와 높이, 모든 장.. 2024. 9. 7.
[Baekjoon/JAVA] 15989 1, 2, 3 더하기 4 문제가 짧아서 골랐는데 읽다보니 dp 의 느낌이 강해서 아 괜히 건드렸나 ........생각했던 문제 근데 생각보다 규칙만 찾으면 쉽게 풀리는 문제였다 N = 11 N = 21 ( x 2)2 N = 31 ( x 3)2 ( + 1)3 N = 41 ( x 4)2 ( + 1) ( + 1)3 ( + 1)2 + 2 N = 51 ( x 5)2 ( + 1) ( + 1)3 ( + 1) ( + 1)2 + 2 ( + 1)3 + 2 N = 61 ( x 6)2 ( + 1) ( + 1) ( + 1)3 ( + 1) ( + 1) ( + 1)2 + 2 ( + 1) ( + 1)3 + 2 ( + 1)2 + 2 + 2 3 + 3 이런식으로 규칙을 보다보면, N-1 에서 N 으로 갈때 몇가지 케이스만 추가되는 것을 알 수 있다.단순히 + .. 2024. 9. 1.
[Baekjoon/JAVA] 1446 지름길 간만에 dp 문제를 스스로 풀었다 !!  소스 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int D = Integer.parseInt(st.nextToken()); /.. 2024. 8. 31.
[Programmers/Java] Lv3. 다단계 칫솔 판매 import java.util.*;class Solution { public int[] solution(String[] enroll, String[] referral, String[] seller, int[] amount) { int N = enroll.length; int[] answer = new int[N]; HashMap adj = new HashMap(); // 인접한 관계를 저장 HashMap idx = new HashMap(); // 각 사람별 enroll idx 저장 for (int i=0; i 1. 다단계(?) 회사의 직원들을 전부 순회하면서 인덱스와, 해당 직원의 상사(?) 를 hashmap 으로 저장해두었.. 2024. 8. 31.
[Baekjoon/JAVA] 20922 겹치는 건 싫어 처음에 dp로 풀어야 하나 싶다가 감이 너무 안와서 유형을 컨닝하고..(?) 풀었다.투포인터로 풀면 쉽게 풀리는 거였는데 괜히 어렵게 생각하고 있었다...! import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken().. 2024. 8. 25.