[SWEA / Java] 2043. 서랍의 비밀번호

이하얀·2024년 5월 14일
0

🧢 SWEA

목록 보기
7/10



문제 설명


💡 Info

  • 난이도 : D1
  • 시간 제한 : 1개 테스트케이스를 합쳐서 Java의 경우 30초
  • 메모리 제한 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내


내용

서랍의 비밀번호가 생각이 나지 않는다.

비밀번호 P는 000부터 999까지 번호 중의 하나이다.

주어지는 번호 K부터 1씩 증가하며 비밀번호를 확인해 볼 생각이다.

예를 들어, 비밀번호 P가 123이고 주어지는 번호 K가 100일 때, 100부터 123까지 24번 확인하여 비밀번호를 맞출 수 있다.

P와 K가 주어지면 K부터 시작하여 몇 번만에 P를 맞출 수 있는지 알아보자.



📥입력 조건

  • 입력으로 P와 K가 빈 칸을 사이로 주어진다.
    123 100

📤출력 조건

  • 몇 번만에 비밀번호를 맞출 수 있는지 출력한다.
    24


유의 사항 및 제약 조건


.



문제 이해


  • 설정하고자 하는 비밀번호 P와 + K부터 1씩 증가하며 비교하여 그 횟수를 출력


알고리즘


실제 풀이 시간 : 30분

  • P와 K 입력받기
  • Count를 통해 비밀번호를 확인한 횟수 계산하기
    • P와 K가 같지 않은 경우 → K 증가, count 증가

    • P와 K가 같은 경우 → 종료 후 count 출력

      import java.util.*;
      
      class Solution
      {
          public static void main(String args[]) throws Exception
          {
              Scanner sc = new Scanner(System.in);
      
              int P = sc.nextInt();
              int K = sc.nextInt();
      
              int count = 0;
      
              if (K != P) {
                  K++;
                  count++;
      
              } else {
                  System.out.println(count);
              }
          }
      }


오답 체크


  • P와 K가 일치하는 경우에만 0이 출력되고, 그 외의 다른 경우에는 아예 출력값이 발생하지 않는 문제 발생
  • P와 K를 비교할 경우 if가 아닌 While로 변경해 해결!!
    //before
    int count = 0;
    
    if (K != P) {
    	K++;
      count++;
    
    } else {
    	System.out.println(count);
    }
    //after
    int count = 0;
    
    while (K != P) {
    	K++;
    	count++;
    }
    System.out.println(count+1);


최종 풀이


실제 풀이 시간 : 48분(첫 풀이 포함)

  • P와 K 입력받기
  • Count를 통해 비밀번호를 확인한 횟수 계산하기
    • P와 K가 같지 않은 경우 → K 증가, count 증가

    • P와 K가 같은 경우 → 종료 후 count 출력(단, P와 K가 이미 같은 경우가 있으니 count+1을 출력!!)

      import java.util.*;
      
      class Solution
      {
          public static void main(String args[]) throws Exception
          {
              Scanner sc = new Scanner(System.in);
      
              int P = sc.nextInt();
              int K = sc.nextInt();
      
              int count = 0;
      
              while (K != P) {
                  K++;
                  count++;
              }
              System.out.println(count+1);
          }
      }

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE 개발 기록 노트☘️

0개의 댓글