문제

흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 1부터 4까지 번호를 갖는다. "Quadrant n"은 "제n사분면"이라는 뜻이다.

예를 들어, 좌표가 (12, 5)인 점 A는 x좌표와 y좌표가 모두 양수이므로 제1사분면에 속한다. 점 B는 x좌표가 음수이고 y좌표가 양수이므로 제2사분면에 속한다.

점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다.

 

입력

첫 줄에는 정수 x가 주어진다. (−1000 ≤ x ≤ 1000; x ≠ 0) 다음 줄에는 정수 y가 주어진다. (−1000 ≤ y ≤ 1000; y ≠ 0)

 

출력

점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다.

 

풀이

한동안 본 적 없는 사분면이 갑자기 나와서 처음엔 당황했는데, 각 좌표의 양/음 여부만 보고 판단해주면 되기 때문에 쉬운 문제

x, y좌표 모두 0이 아닌 정수라고 가정하고 있기 때문에, 단순하게 양수인지 음수인지 여부만 판별해주면 된다.

 

소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.Scanner;
 
public class Main{
    public static void main(String[] args) {
    
        Scanner ip = new Scanner(System.in);
        
        int x = ip.nextInt();
        int y = ip.nextInt();
        ip.close();
        
        int quadrant;
        
        if (x>0 && y >0) quadrant = 1;
        else if (x<0 && y>0) quadrant = 2;
        else if (x<0 && y<0) quadrant = 3;
        else quadrant = 4;
        
        System.out.println(quadrant);
 
    }
}
cs

 

문제

시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

 

출력

시험 성적을 출력한다.

 

풀이

처음에는 swtich case 구문이 생각났는데, 문제 분류가 if 쪽이라 우선은 if문으로 해결했다

 

소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;
 
public class Main{
    public static void main(String[] args) {
    
        Scanner ip = new Scanner(System.in);
        
        int score = ip.nextInt();
        char grade;
        ip.close();
        
        if (score >=90 && score <= 100) grade = 'A';
        else if (score >=80 && score <= 89) grade = 'B';
        else if (score >=70 && score <= 79) grade = 'C';
        else if (score >=60 && score <= 69) grade = 'D';
        else grade = 'F';
        
        System.out.println(grade);
    }
}
cs

 

+ Recent posts