권예진
코딩 공부
권예진
전체 방문자
오늘
어제
  • 분류 전체보기 (57)
    • Git과GitHub (3)
    • 개발상식 (0)
    • Back-End (20)
      • JAVA (3)
      • Spring (2)
      • CI&CD (0)
      • 부스트코스 (15)
    • PS (20)
      • 백준 (20)
    • TIL (0)
    • 회고 (3)
      • 우아한테크코스 (3)
    • 개발 도서 (8)
      • 객체지향의 사실과 오해 (8)
      • 좋은 코드, 나쁜 코드 (0)
    • 일상 (2)
      • 내가 보려고 만든 맥북 꿀팁 (2)
    • etc (1)
      • C (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백준
  • 독서
  • Jacoco
  • 윤성우의열혈C프로그래밍
  • 우테코
  • github
  • 부스트코스
  • 맥북
  • 백엔드
  • 자바
  • git
  • 스프링
  • 객체지향의사실과오해
  • C언어
  • ps
  • 스프링부트
  • 우테코5기
  • 우아한테크코스5기
  • 단계별로풀어보기
  • 프로젝트세팅
  • 우아한테크코스
  • github-actions

최근 댓글

최근 글

hELLO · Designed By 정상우.
권예진

코딩 공부

[백준] 14681번: 사분면 고르기 [C]
PS/백준

[백준] 14681번: 사분면 고르기 [C]

2023. 1. 3. 17:14
반응형
 

14681번: 사분면 고르기

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

www.acmicpc.net

 

먼저, 정수를 입력받아 변수 x에 저장한다.

또 정수를 입력받아 변수 y에 저장한다.

 

이제, 변수 x와 y에 점(x, y)의 x좌표와 y좌표가 저장되어 있다.

좌표가 어느 사분면에 속하는지는 x좌표와 y좌표를 기준으로 판단한다.

 

사분면 판단 조건

  • 제1사분면 : x좌표, y좌표가 모두 양수인 경우
  • 제2사분면 : x좌표가 음수이고, y좌표가 양수인 경우
  • 제3사분면 : x좌표와 y좌표가 모두 음수인 경우
  • 제4사분면 : x좌표가 양수이고, y좌료가 음수인 경우

 

위의 사분면 판단 조건에 따라 조건문을 사용해서 1, 2, 3, 4를 출력한다.

 

#include <stdio.h>
int main(void) {
    int x, y;           // 1. x좌표와 y좌표를 저장할 변수 2개 선언
    scanf("%d", &x);    // 2-1. x좌표(정수)를 입력받아 변수 x에 저장
    scanf("%d", &y);    // 2-2. y좌표(정수)를 입력받아 변수 y에 저장

    if (x > 0 && y > 0) {             // 3-1. x좌표와 y좌표가 모두 양수인 경우
        printf("1");                  // 3-1. 1 출력
    }
    else if ((x < 0) && (y > 0)) {    // 3-2. x좌표가 음수이고, y좌표가 양수인 경우
        printf("2");                  // 3-2. 2 출력
    }
    else if ((x < 0) && (y < 0)) {    // 3-3. x좌표와 y좌표가 모두 음수인 경우
        printf("3");                  // 3-3. 3 출력
    }
    else if ((x > 0) && (y < 0)) {    // 3-4.  x좌표가 양수이고, y좌료가 음수인 경우
        printf("4");                  // 3-4. 4 출력
    }
    
    return 0;
}

 

문제에서 ,−1000 ≤ x ≤ 1000 이고 ,x ≠ 0 , −1000 ≤ y ≤ 1000 이고, y ≠ 0 이라고 제시되어 있다.

x 또는 y가 0인 경우가 배제 되므로,
x가 양수거나 음수거나, y가 양수거나 음수거나 해서
총 2 × 2 = 4 가지의 경우의 수가 나온다.


다라서 마지막 조건문 else if ((x > 0) && (y < 0)) 는 else 로 적어도 된다.
위에서 1사분면인 경우, 2사분면인 경우, 3사분면인 경우 총 3가지 경우를 다 따져 보았기 때문이다.

 

#include <stdio.h>
int main(void) {
    int x, y;           // 1. x좌표와 y좌표를 저장할 변수 2개 선언
    scanf("%d", &x);    // 2-1. x좌표(정수)를 입력받아 변수 x에 저장
    scanf("%d", &y);    // 2-2. y좌표(정수)를 입력받아 변수 y에 저장

    if (x > 0 && y > 0) {             // 3-1. x좌표와 y좌표가 모두 양수인 경우
        printf("1");                  // 3-1. 1 출력
    }
    else if ((x < 0) && (y > 0)) {    // 3-2. x좌표가 음수이고, y좌표가 양수인 경우
        printf("2");                  // 3-2. 2 출력
    }
    else if ((x < 0) && (y < 0)) {    // 3-3. x좌표와 y좌표가 모두 음수인 경우
        printf("3");                  // 3-3. 3 출력
    }
    else {                            // 3-4.  x좌표가 양수이고, y좌료가 음수인 경우
        printf("4");                  // 3-4. 4 출력
    }
    
    return 0;
}

 

조건문을 이중으로 작성해도 된다.

x좌표(또는 y좌표)가 양수일때와 음수일 때로 나눈 후,

y좌표(또는 x좌표)에 따라 사분면이 나뉜다.

 

x좌표가 양수이면 y좌표에 따라 제1사분면과 제4사분면으로 나뉜다.

  • x좌표가 양수일 때, y좌표가 양수이면 제1사분면
  • x좌표가 양수일 때, y좌표가 음수이면 제4사분면

x좌표가 음수이면 y좌표에 따라 제2사분면과 제3사분면으로 나뉜다.

  • x좌표가 음수일 때, y좌표가 양수이면 제2사분면
  • x좌표가 음수일 때, y좌표가 음수이면 제3사분면

 

#include <stdio.h>
int main(void) {
    int x, y;           // 1. x좌표와 y좌표를 저장할 변수 2개 선언
    scanf("%d", &x);    // 2-1. x좌표(정수)를 입력받아 변수 x에 저장
    scanf("%d", &y);    // 2-2. y좌표(정수)를 입력받아 변수 y에 저장
    
    if (x > 0) {        // x좌표가 양수일 때
        if (y > 0) {         // y좌표가 양수이면
            printf("1");           // 1 출력
        }
        else if (y < 0) {    // y좌표가 음수이면 
            printf("4");           // 4 출력
        }
    }
    else if (x < 0) {   // x좌표가 음수일 때
        if (y > 0) {         // y좌표가 양수이면
            printf("2");           // 2 출력
        }
        else if (y < 0) {    // y좌표가 음수이면
            printf("3");           // 3 출력
        }
    }
    
    return 0;
}

 

y좌표를 기준으로도 나눌 수 있다.

y좌표가 양수이면 x좌표에 따라 제1사분면과 제2사분면으로 나뉜다.

  • y좌표가 양수일 때, x좌표가 양수이면 제1사분면
  • y좌표가 양수일 때, x좌표가 음수이면 제2사분면

y좌표가 음수이면 x좌표에 따라 제3사분면과 제4사분면으로 나뉜다.

  • y좌표가 음수일 때, x좌표가 양수이면 제4사분면
  • y좌표가 음수일 때, x좌표가 음수이면 제3사분면

 

#include <stdio.h>
int main(void) {
    int x, y;           // 1. x좌표와 y좌표를 저장할 변수 2개 선언
    scanf("%d", &x);    // 2-1. x좌표(정수)를 입력받아 변수 x에 저장
    scanf("%d", &y);    // 2-2. y좌표(정수)를 입력받아 변수 y에 저장
    
    if (y > 0) {        // y좌표가 양수일 때
        if (x > 0) {         // x좌표가 양수이면
            printf("1");           // 1 출력
        }
        else if (x < 0) {    // x좌표가 음수이면 
            printf("2");           // 2 출력
        }
    }
    else if (y < 0) {   // y좌표가 음수일 때
        if (x > 0) {         // x좌표가 양수이면
            printf("4");           // 4 출력
        }
        else if (x < 0) {    // x좌표가 음수이면
            printf("3");           // 3 출력
        }
    }
    
    return 0;
}
반응형
저작자표시 (새창열림)

'PS > 백준' 카테고리의 다른 글

[백준] 2884번: 알람 시계 [C]  (1) 2023.01.03
[백준] 2753번: 윤년 [C]  (0) 2023.01.03
[백준] 9498번: 시험 성적 [C]  (0) 2023.01.03
[백준] 1330번: 두 수 비교하기 [C]  (0) 2023.01.03
[백준 > 단계별로 풀어보기] 1단계 입출력과 사칙연산 (답) [C / C++]  (0) 2023.01.03
    'PS/백준' 카테고리의 다른 글
    • [백준] 2884번: 알람 시계 [C]
    • [백준] 2753번: 윤년 [C]
    • [백준] 9498번: 시험 성적 [C]
    • [백준] 1330번: 두 수 비교하기 [C]
    권예진
    권예진

    티스토리툴바