[JAVA] 프로그래머스 PCCE기출문제 코드리뷰- Level 0 (1~4번 풀이)_1

현서의 성장일지·2025년 1월 13일

프로그래머스

목록 보기
11/11

1. 문자 출력

문제 설명

주어진 코드는 변수에 데이터를 저장하고 출력하는 코드입니다. 아래와 같이 출력되도록 빈칸을 채워 코드를 완성해 주세요.

출력 예시
3
2
1
Let's go!


import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        String message = "Let's go!";

        System.out.println("3\n2\n1");
        System.out.println(message);
    }
}

2. 각도 합치기

디버깅 문제 - 1줄만 수정하여 버그를 고치세요.

문제 설명

일반적으로 두 선분이 이루는 각도는 한 바퀴를 360도로 하여 표현합니다. 따라서 각도에 360의 배수를 더하거나 빼더라도 같은 각을 의미합니다. 예를 들면, 30도와 390도는 같은 각도입니다.

주어진 코드는 각도를 나타내는 두 정수 angle1angle2가 주어질 때, 이 두 각의 합을 0도 이상 360도 미만으로 출력하는 코드입니다. 코드가 올바르게 작동하도록 한 줄을 수정해 주세요.

제한사항

  • 0 ≤ angle1 ≤ 5000
  • 0 ≤ angle2 ≤ 5000

입출력 예

angle1angle2의 합은 765도이고, 765를 720을 빼면 45도이므로 45를 출력합니다.

입력출력
280
485
45

결과 코드


import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int angle1 = sc.nextInt();
        int angle2 = sc.nextInt();

        int sum_angle = (angle1 + angle2)%360;
        System.out.println(sum_angle);
    }
}

🗝️Point🗝️

  • 모듈로 연산 (% 360) 활용
  • (angle1 + angle2) % 360을 사용하여 각도를 360도로 순환하도록 함.

3. 수 나누기

디버깅 문제 - 1줄만 수정하여 버그를 고치세요.

문제 설명

2자리 이상의 정수 number가 주어집니다. 주어진 코드는 이 수를 2자리씩 자른 뒤, 자른 수를 모두 더해서 그 합을 출력하는 코드입니다. 코드가 올바르게 작동하도록 한 줄을 수정해 주세요.

제한사항

  • 10 ≤ number ≤ 2,000,000,000
  • number의 자릿수는 2의 배수입니다.

입출력 예

입력된 수를 2자리씩 나눠 합치면 다음과 같습니다.

  • 48 + 59 = 107
  • 29 = 29
입력출력
4859107
2929

결과 코드

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int number = sc.nextInt();
        int answer = 0;
        
        for(int i=0; i<number; i++){
            answer += number % 100;
            number /= 100;
        }

        System.out.println(answer);
    }
}

🗝️Point🗝️

  • for 문의 i크기를 제안해야 함.

4. 병과분류

빈칸 채우기 문제

문제설명

퓨쳐종합병원에서는 접수한 환자가 진료받을 병과에 따라 자동으로 환자 코드를 부여해 주는 프로그램이 있습니다. 환자 코드의 마지막 네 글자를 보면 환자가 어디 병과에서 진료를 받아야 할지 알 수 있습니다. 예를 들어 환자의 코드가 _eye로 끝난다면 안과를, head로 끝난다면 신경외과 진료를 보게 됩니다. 환자 코드의 마지막 글자에 따른 병과 분류 기준은 다음과 같습니다.

마지막 글자 , 병과
_eye Ophthalmologyc
head Neurosurgery
infl Orthopedics
skin Dermatology
환자의 코드를 나타내는 문자열 code를 입력받아 위 표에 맞는 병과를 출력하도록 빈칸을 채워 코드를 완성해 주세요. 위 표의 단어로 끝나지 않는다면 "direct recommendation"를 출력합니다.

제한사항

  • 4 ≤ code의 길이 ≤ 20
  • code는 영어 소문자와 숫자, 언더바("_")로 이루어져 있습니다.

입출력 예

입력출력
dry_eyeOphthalmologyc
pat23_08_20_headNeurosurgery

결과코드

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String code = sc.next();
        String lastFourWords = code.substring(code.length()-4, code.length());

        if(lastFourWords.equals(
"_eye"
)){
            System.out.println("Ophthalmologyc");
        }
        else if(
lastFourWords.equals("head")
){
            System.out.println("Neurosurgery");
        }
        else if(
lastFourWords.equals("infl")
){
            System.out.println("Orthopedics");
        }
        
else if(lastFourWords.equals("skin"))
{
            System.out.println("Dermatology");
        }
        
else
{
            System.out.println("direct recommendation");
        }
    }
}

🗝️Point🗝️

  • 조건문 안의 내용이 빈칸이었다.
  • lastFourWords.equals("head")의 변수와 메서드를 각 조건문 마다 잘 작성 하였는지, 조건을 잘 작성하였는지가 중요!
profile
초보 개발자의 기술 블로그

0개의 댓글