Problem ๐Ÿ’ป

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

 

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

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

programmers.co.kr

 

๋ฌธ์ œ ์„ค๋ช…

๋จธ์“ฑ์ด๋„ค ์˜ท๊ฐ€๊ฒŒ๋Š” 10๋งŒ ์› ์ด์ƒ ์‚ฌ๋ฉด 5%, 30๋งŒ ์› ์ด์ƒ ์‚ฌ๋ฉด 10%, 50๋งŒ ์› ์ด์ƒ ์‚ฌ๋ฉด 20%๋ฅผ ํ• ์ธํ•ด์ค๋‹ˆ๋‹ค.
๊ตฌ๋งคํ•œ ์˜ท์˜ ๊ฐ€๊ฒฉ price๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์ง€๋ถˆํ•ด์•ผ ํ•  ๊ธˆ์•ก์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”.


์ œํ•œ์‚ฌํ•ญ
  • 10 ≤ price ≤ 1,000,000
    • price๋Š” 10์› ๋‹จ์œ„๋กœ(1์˜ ์ž๋ฆฌ๊ฐ€ 0) ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
  • ์†Œ์ˆ˜์  ์ดํ•˜๋ฅผ ๋ฒ„๋ฆฐ ์ •์ˆ˜๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆpriceresult
150,000 142,500
580,000 464,000

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • 150,000์›์—์„œ 5%๋ฅผ ํ• ์ธํ•œ 142,500์›์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • 580,000์›์—์„œ 20%๋ฅผ ํ• ์ธํ•œ 464,000์›์„ return ํ•ฉ๋‹ˆ๋‹ค.

Approach 1 โŒ - ํ‹€๋ฆฐ ๋‚˜์˜ ์ดˆ๊ธฐ ์ฝ”๋“œ

class Solution {
    int answer =0;
    public int solution(int price) {
        if (price >= 100000) {
            retrun answer = price * 0.95;
        } else if (price >= 300000) {
            return answer = price * 0.90;
        } else if (price >= 500000) {
            return answer = price * 0.80;
        }
    }
    return answer;
    
}

Approach 2 โญ• - ๋‚˜์˜ ์ฝ”๋“œ ๊ฐœ์„ ์ 

๋ฌธ์ œ์  1: ์กฐ๊ฑด๋ฌธ์˜ ์ˆœ์„œ

 

์กฐ๊ฑด๋ฌธ์€ ์œ„์—์„œ๋ถ€ํ„ฐ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ price >= 100000 ์กฐ๊ฑด์ด ๋จผ์ € ์ฒ˜๋ฆฌ๋˜๋ฉด,

์ดํ›„์˜ ์กฐ๊ฑด๋ฌธ price >= 300000, price >= 500000์€ ํ‰๊ฐ€๋˜์ง€ ์•Š๋Š”๋‹ค.

 ์กฐ๊ฑด์˜ ์ˆœ์„œ๋ฅผ ํฐ ๊ฐ’๋ถ€ํ„ฐ ์ž‘์€ ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ”์•ผ ํ•œ๋‹ค.

 

๋ฌธ์ œ์  2: ์˜คํƒ€

retrun  return์œผ๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค.

 

๋ฌธ์ œ์  3: ํƒ€์ž… ๋ถˆ์ผ์น˜

ํ• ์ธ๋œ ๊ฐ€๊ฒฉ์„ ๊ณ„์‚ฐํ•˜๋ ค๋ฉด price์™€ ํ• ์ธ์œจ์„ ๊ณฑํ•ด์•ผ ํ•˜์ง€๋งŒ,

๊ณฑ์…ˆ ์—ฐ์‚ฐ์—์„œ ์ •์ˆ˜์™€ ์‹ค์ˆ˜๋ฅผ ํ˜ผํ•ฉํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. 

price * 0.95์ฒ˜๋Ÿผ ๊ณ„์‚ฐํ•˜๋ฉด ๊ฒฐ๊ณผ๋Š” ์‹ค์ˆ˜(double)๊ฐ€ ๋œ๋‹ค.

์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ ค๋ฉด ํ˜• ๋ณ€ํ™˜์„ ๋ช…์‹œ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.

 

๋ฌธ์ œ์  4: ๋ฆฌํ„ด๊ฐ’์€ ํ• ์ธ์ด ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๋„ ๋ฐ˜์˜ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

 return price; // ํ• ์ธ ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜์ง€ ์•Š์œผ๋ฉด ์›๋ž˜ ๊ฐ€๊ฒฉ ๋ฐ˜ํ™˜

๋กœ ํ•˜์—ฌ์„œ if ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜์—ฌ ๋‚ด๋ถ€ ํ•จ์ˆ˜์—์„œ price์™€ ์–ด๋–ค ๊ฐ’์ด ๊ณฑํ•ด์ ธ๋„ return ์œผ๋กœ ๋Œ์•„์˜ค๋„๋ก ์ด๋ฏธ ์„ค์ •ํ•ด๋‘์—ˆ๋‹ค.

๊ทธ๋ž˜์„œ if๋ฌธ ๋๋‚˜๊ณ   ์ ์šฉ๋œ ํ• ์ธ ๊ฐ€๊ฒฉ์ด ๋ฆฌํ„ด๋˜๋„๋ก ๋ณ„๋„๋กœ ์„ค์ •ํ•  ํ•„์š”๋Š” ์—†๋‹ค.

๋‹ค๋งŒ ์ด ๋ชจ๋“  ์กฐ๊ฑด์ด ํ•ด๋‹น๋˜์ง€ ์•Š์•„๋„ ํ• ์ธ์ด ์ ์šฉ๋˜์ง€ ์•Š์€ ๊ฐ€๊ฒฉ๋„ ๋ฆฌํ„ด์ด ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ 

return price;๋Š” ํ•„์ˆ˜์ด๋‹ค.


Solution ๐Ÿ’ก - ์ •๋‹ต ์ฝ”๋“œ

class Solution {
  public int solution(int price) {
      if (price >= 500000) {
          return (int)(price * 0.80);
      } else if (price >= 300000) {
          return (int)(price * 0.90);
      } else if (price >= 100000) {
          return (int) (price * 0.95)
      }
      return price; // ํ• ์ธ ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜์ง€ ์•Š์œผ๋ฉด ์›๋ž˜ ๊ฐ€๊ฒฉ ๋ฐ˜ํ™˜
  }
}

 

์ฃผ์š” ์ˆ˜์ • ์‚ฌํ•ญ

1. ์กฐ๊ฑด๋ฌธ ์ˆœ์„œ๋ฅผ ํฐ ๊ฐ’๋ถ€ํ„ฐ ์ž‘์€ ๊ฐ’์œผ๋กœ ์žฌ์ •๋ ฌ.

2. return ์˜คํƒ€ ์ˆ˜์ •.

3. ํ• ์ธ๋œ ๊ฐ’์„ ๊ณ„์‚ฐํ•œ ํ›„ int๋กœ ๋ณ€ํ™˜.


Reference ๐Ÿ“„

+ Recent posts