Problem ๐Ÿ’ป

https://school.programmers.co.kr/learn/courses/30/lessons/120841

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

์‚ฌ๋ถ„๋ฉด์€ ํ•œ ํ‰๋ฉด์„ x์ถ•๊ณผ y์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆˆ ๋„ค ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ์‚ฌ๋ถ„๋ฉด์€ ์•„๋ž˜์™€ ๊ฐ™์ด 1๋ถ€ํ„ฐ 4๊นŒ์ง€ ๋ฒˆํ˜ธ๋ฅผ๋งค๊น๋‹ˆ๋‹ค.

  • x ์ขŒํ‘œ์™€ y ์ขŒํ‘œ๊ฐ€ ๋ชจ๋‘ ์–‘์ˆ˜์ด๋ฉด ์ œ1์‚ฌ๋ถ„๋ฉด์— ์†ํ•ฉ๋‹ˆ๋‹ค.
  • x ์ขŒํ‘œ๊ฐ€ ์Œ์ˆ˜, y ์ขŒํ‘œ๊ฐ€ ์–‘์ˆ˜์ด๋ฉด ์ œ2์‚ฌ๋ถ„๋ฉด์— ์†ํ•ฉ๋‹ˆ๋‹ค.
  • x ์ขŒํ‘œ์™€ y ์ขŒํ‘œ๊ฐ€ ๋ชจ๋‘ ์Œ์ˆ˜์ด๋ฉด ์ œ3์‚ฌ๋ถ„๋ฉด์— ์†ํ•ฉ๋‹ˆ๋‹ค.
  • x ์ขŒํ‘œ๊ฐ€ ์–‘์ˆ˜, y ์ขŒํ‘œ๊ฐ€ ์Œ์ˆ˜์ด๋ฉด ์ œ4์‚ฌ๋ถ„๋ฉด์— ์†ํ•ฉ๋‹ˆ๋‹ค.

x ์ขŒํ‘œ (x, y)๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๋‹ด์€ ์ •์ˆ˜ ๋ฐฐ์—ด dot์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์ขŒํ‘œ dot์ด ์‚ฌ๋ถ„๋ฉด ์ค‘ ์–ด๋””์— ์†ํ•˜๋Š”์ง€ 1, 2, 3, 4 ์ค‘ ํ•˜๋‚˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.


Approach 1 โŒ - ๋‚˜์˜ ์ž˜๋ชป๋œ ์ฝ”๋“œ

class Solution {
    public int solution(int[] dot) {
      if (dot[0] >0 && dot[1]> 0) {
          return 1;
      } else if (dot[0]<0 && dot[1]>0) {
          return 2;
      } else if (dot[0] <0 && dot[1] <0) {
          return 3;
      } else if (dot[0]>0 && dot[1] <0){
          return 4;
      }
    }
}

์ฝ”๋“œ์˜ ๋ฌธ์ œ๋Š” throw new IllegalArgumentException(...) ๊ฐ™์€ ๊ธฐ๋ณธ ์ฒ˜๋ฆฌ๋‚˜ ์˜ˆ์™ธ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์•„์„œ ๋ฐœ์ƒํ•œ ๊ฒƒ์ด๋‹ค.

 int x = dot[0]; int y = dot[1];์˜ ์—ฌ๋ถ€๋Š” ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์ด ์•„๋‹ˆ๋‹ค.

 

ํ˜„์žฌ ์ฝ”๋“œ์—์„œ๋Š” ๋„ค ๊ฐ€์ง€ if-else ๋ธ”๋ก๋งŒ ์žˆ๊ณ , ์–ด๋–ค ๊ฒฝ์šฐ๋„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด return๋ฌธ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ด๋ฅผ ์˜ค๋ฅ˜๋กœ ๊ฐ„์ฃผํ•œ ๊ฒƒ์ด๋‹ค.์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ์ด์œ ๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ๋ฐ˜ํ™˜๊ฐ’์ด ๋ณด์žฅ๋˜์ง€ ์•Š๋Š” ๊ตฌ์กฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ž๋ฐ”๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ “์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ๋ฐ˜๋“œ์‹œ int๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค”๋Š” ๊ฑธ ๋ณด์žฅํ•˜๋„๋ก ์š”๊ตฌํ•œ๋‹ค.

public int solution(int[] dot) {
    if (dot[0] > 0 && dot[1] > 0) {
        return 1; // ์ œ1์‚ฌ๋ถ„๋ฉด
    } else if (dot[0] < 0 && dot[1] > 0) {
        return 2; // ์ œ2์‚ฌ๋ถ„๋ฉด
    } else if (dot[0] < 0 && dot[1] < 0) {
        return 3; // ์ œ3์‚ฌ๋ถ„๋ฉด
    } else if (dot[0] > 0 && dot[1] < 0) {
        return 4; // ์ œ4์‚ฌ๋ถ„๋ฉด
    }
    // ์—ฌ๊ธฐ์„œ return์ด ์—†๋Š” ์ƒํƒœ๋กœ ๋๋‚จ
}

์œ„ ์ฝ”๋“œ์—์„œ๋Š” ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ๋ฐ˜๋“œ์‹œ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ๊ฒŒ ๋ณด์žฅ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.


Approach 2 โญ•

๋ฐฉ๋ฒ• 1: else๋ฅผ ์ถ”๊ฐ€ํ•ด ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌ

class Solution {
    public int solution(int[] dot) {
        if (dot[0] > 0 && dot[1] > 0) {
            return 1; // ์ œ1์‚ฌ๋ถ„๋ฉด
        } else if (dot[0] < 0 && dot[1] > 0) {
            return 2; // ์ œ2์‚ฌ๋ถ„๋ฉด
        } else if (dot[0] < 0 && dot[1] < 0) {
            return 3; // ์ œ3์‚ฌ๋ถ„๋ฉด
        } else {
            return 4; // ์ œ4์‚ฌ๋ถ„๋ฉด (else๋กœ ์ฒ˜๋ฆฌ)
        }
    }
}

 

๋ฐฉ๋ฒ• 2: ์˜ˆ์™ธ๋ฅผ ๋˜์ ธ ๋น„์ •์ƒ ์ž…๋ ฅ ์ฒ˜๋ฆฌ

class Solution {
    public int solution(int[] dot) {
        if (dot[0] > 0 && dot[1] > 0) {
            return 1;
        } else if (dot[0] < 0 && dot[1] > 0) {
            return 2;
        } else if (dot[0] < 0 && dot[1] < 0) {
            return 3;
        } else if (dot[0] > 0 && dot[1] < 0) {
            return 4;
        }
        
        // ๋ชจ๋“  ์ •์ƒ์ ์ธ ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ–ˆ์œผ๋ฏ€๋กœ, ์—ฌ๊ธฐ๊นŒ์ง€ ์˜ค๋ฉด ๋น„์ •์ƒ์ ์ธ ์ž…๋ ฅ
        throw new IllegalArgumentException("Invalid coordinates: " + dot[0] + ", " + dot[1]);
    }
}

Solution ๐Ÿ’ก

class Solution {
    public int solution(int[] dot) {
        int x = dot[0];
        int y = dot[1];
        
        if (x > 0 && y > 0) {
            return 1; // ์ œ1์‚ฌ๋ถ„๋ฉด
        } else if (x < 0 && y > 0) {
            return 2; // ์ œ2์‚ฌ๋ถ„๋ฉด
        } else if (x < 0 && y < 0) {
            return 3; // ์ œ3์‚ฌ๋ถ„๋ฉด
        } else if (x > 0 && y < 0) {
            return 4; // ์ œ4์‚ฌ๋ถ„๋ฉด
        }
        
        // ์ถ”๊ฐ€: ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ฒ˜๋ฆฌ
        throw new IllegalArgumentException("Invalid coordinates: " + x + ", " + y);
    }
}

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ์ฒด๊ณ„

1. ๋ฌธ์ œ ์ดํ•ด:

  • 2์ฐจ์› ์ขŒํ‘œ๊ณ„์—์„œ (x, y)์˜ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์–ด๋А ์‚ฌ๋ถ„๋ฉด์— ์†ํ•˜๋Š”์ง€ ํŒ๋ณ„ํ•˜๋Š” ๋ฌธ์ œ.

  • ์ œ1์‚ฌ๋ถ„๋ฉด: x > 0, y > 0

  • ์ œ2์‚ฌ๋ถ„๋ฉด: x < 0, y > 0

  • ์ œ3์‚ฌ๋ถ„๋ฉด: x < 0, y < 0

  • ์ œ4์‚ฌ๋ถ„๋ฉด: x > 0, y < 0

 

2. ์กฐ๊ฑด ๋‚˜์—ด:

x์™€ y ๊ฐ’์˜ ๋ถ€ํ˜ธ์— ๋”ฐ๋ผ ๋„ค ๊ฐ€์ง€ ๊ฒฝ์šฐ๋ฅผ ์กฐ๊ฑด๋ฌธ์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 4๊ฐ€์ง€์ด๋ฉฐ, ๊ฐ ์กฐ๊ฑด์€ ์ƒํ˜ธ ๋ฐฐํƒ€์ (์ค‘๋ณต๋˜์ง€ ์•Š์Œ).

 

3. ์•ˆ์ „ํ•œ ๋ฐ˜ํ™˜๊ฐ’ ์ฒ˜๋ฆฌ:

๋ชจ๋“  ์กฐ๊ฑด์— ๋Œ€ํ•ด ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

๋…ผ๋ฆฌ์ ์œผ๋กœ ๋„ค ๊ฐ€์ง€ ๊ฒฝ์šฐ ์™ธ์—๋Š” ์ž…๋ ฅ์ด ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ else๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ์ถ”๊ฐ€ ๋กœ์ง์„ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค. else๋Š” ์กฐ๊ฑด๋ฌธ์„ ๋„ฃ์œผ๋ฉด ์•ˆ๋œ๋‹ค. 

 

4. ๊ฐ€๋…์„ฑ ๋ฐ ํ™•์žฅ์„ฑ:

๋ช…ํ™•ํ•˜๊ฒŒ ์กฐ๊ฑด์„ ๋ถ„๋ฆฌํ•˜๊ณ , ํ•„์š”์— ๋”ฐ๋ผ ์ฃผ์„์„ ์ž‘์„ฑํ•ด ์˜๋„๋ฅผ ๋“œ๋Ÿฌ๋‚œ๋‹ค.

์˜ˆ์™ธ ์ฒ˜๋ฆฌ์™€ ๋””ํดํŠธ ๋ฐ˜ํ™˜๊ฐ’์„ ์ถ”๊ฐ€ํ•ด ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์ž…๋ ฅ์—๋„ ๊ฒฌ๊ณ ํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ๋ณด์žฅํ•œ๋‹ค.

 


Reference ๐Ÿ“„

+ Recent posts