[백준] 26008번 : 해시 해킹

헛헛한꿔녀니·2023년 11월 17일

코딩 테스트

목록 보기
7/10

📚 문제

이미지를 클릭하시면 문제 링크로 연결됩니다.


📝 문제 이해

  • 몇 번을 읽어보고 읽어봐도 문제 자체를 이해하려고 하는데 시간이 너무 오래 걸렸다.
  • 사실 지금도 정확하게 이해를 했다라고 자신있게 말하기 어렵다.
  • 아래 블로그들의 해설을 참조하면서 문제를 이해하려고 노력했다.
    https://nukoori.tistory.com/40
    https://gukin.tistory.com/21
    https://velog.io/@kimha0/%EB%B0%B1%EC%A4%80-26008-%EB%AC%B8%EC%A0%9C-%ED%92%80%EC%9D%B4
  • 주어지는 값 : 비밀번호의 길이 (n), 문자 종류의 개수 (M), 정수 (A) / 알아낸 해시값 정수 (H)
  • 주어진 해시값 (H) 을 갖는 비밀번호의 개수 출력 (출력값 = 비밀번호의 개수 % (10⁹ + 7))
  • 비밀번호의 개수 (Mⁿ) 중 해시값과 같은 비밀번호의 개수 구하기

💡 문제 풀이

  • 문제가 수학이다보니 사실 잘 모르겠다.


💻 소스 코드

import java.util.Scanner;

// 4일차 (해시맵) - 백준 해시 해킹
public class day04Baek26008 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        long answer = 1L;

        int n = sc.nextInt();
        int m = sc.nextInt();
        int a = sc.nextInt();
        int h = sc.nextInt();

        for(int i = 0; i < n-1; i ++){
            answer = (answer * m)%1000000007;
        }
        System.out.println(answer);
    }
}

0개의 댓글