Amenable
Amenable's Blog
Amenable
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (189)
    • ๐Ÿ“‚ JAVA (87)
      • ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ” (65)
      • ์ฃผ์š” ๊ฐœ๋… (22)
    • ๐Ÿ“‚ ๊ฐœ๋ฐœ ์„œ์  (22)
      • ์‹ค์šฉ์ฃผ์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ (1)
      • ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์‚ฌ์‹ค๊ณผ ์˜คํ•ด (2)
      • ํด๋ฆฐ ์ฝ”๋“œ (8)
      • ํ•จ๊ป˜ ์ž๋ผ๊ธฐ (1)
      • ๊ทธ๋ฆผ์œผ๋กœ ๋ฐฐ์šฐ๋Š” HTTP&Network Basic (10)
    • ๐Ÿ“‚ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (8)
      • ๊ฐœ๋… (8)
      • ๋ฌธ์ œํ’€์ด (0)
    • ๐Ÿ“‚ ๋„คํŠธ์›Œํฌ (14)
      • ๊ฐœ๋… (6)
      • ์„ฑ๊ณต๊ณผ ์‹คํŒจ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” 1%์˜ ๋„คํŠธ์›Œํฌ ์›๋ฆฌ (8)
    • ๐Ÿ“‚ ์Šคํ”„๋ง (13)
      • ๊ธฐ๋ณธ ๊ฐœ๋… (13)
    • ๐Ÿ“‚ WEB (5)
    • ๐Ÿ“‚ ์ž๋ฃŒ๊ตฌ์กฐ (12)
      • ๊ฐœ๋… (2)
      • ์ •๋ ฌ (8)
      • ํŠธ๋ฆฌ (2)
    • ๐Ÿ“‚ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (10)
      • ์ตœ์†Œ์‹ ์žฅํŠธ๋ฆฌ (2)
      • ์ตœ๋‹จ ๊ฒฝ๋กœ (2)
      • ๋ฌธ์ž์—ด (2)
      • ETC (4)
    • ๐Ÿ“‚ ์•Œ๊ณ ๋ฆฌ์ฆ˜_๋ฌธ์ œํ’€์ด (4)
      • BOJ_๋ฐฑ์ค€ (4)
    • ๐Ÿ“‚ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (3)
    • ๐Ÿ“‚ DevOps (2)
      • ๋ฐฐํฌ (2)
    • ๐Ÿ“‚ ํ›„๊ธฐ (8)
      • ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค(ํ”„๋ฆฌ์ฝ”์Šค) (4)
      • 2023๋…„ (3)
      • 2024๋…„ (1)
    • ๐Ÿ“‚ ํšŒ๊ณ  (1)
      • 2023๋…„ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿš€ GitHub

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Amenable

Amenable's Blog

ํ”„๋ฆฌ์ฝ”์Šค 2์ฃผ์ฐจ(์ˆซ์ž ์•ผ๊ตฌ ๊ฒŒ์ž„ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค
๐Ÿ“‚ ํ›„๊ธฐ/์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค(ํ”„๋ฆฌ์ฝ”์Šค)

ํ”„๋ฆฌ์ฝ”์Šค 2์ฃผ์ฐจ(์ˆซ์ž ์•ผ๊ตฌ ๊ฒŒ์ž„ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค

2022. 11. 24. 15:06

1. ๐Ÿ“ƒ ๋ฏธ์…˜ ์„ค๋ช…

  2์ฃผ ์ฐจ์˜ ๋ฏธ์…˜์€ '์ˆซ์ž ์•ผ๊ตฌ ๊ฒŒ์ž„'์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ˆซ์ž ์•ผ๊ตฌ ๊ฒŒ์ž„์˜ ๊ธฐ๋ณธ์ ์ธ ๊ทœ์น™์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  ๊ธฐ๋ณธ์ ์œผ๋กœ 1๋ถ€ํ„ฐ 9๊นŒ์ง€ ์„œ๋กœ ๋‹ค๋ฅธ ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ 3์ž๋ฆฌ์˜ ์ˆ˜๋ฅผ ๋งž์ถ”๋Š” ๊ฒŒ์ž„์ด๋‹ค. ๊ฐ™์€ ์ˆ˜๊ฐ€ ๊ฐ™์€ ์ž๋ฆฌ์— ์žˆ์œผ๋ฉด ์ŠคํŠธ๋ผ์ดํฌ, ๋‹ค๋ฅธ ์ž๋ฆฌ์— ์žˆ์œผ๋ฉด ๋ณผ, ๊ฐ™์€ ์ˆ˜๊ฐ€ ์ „ํ˜€ ์—†์œผ๋ฉด ๋‚ซ์‹ฑ์ด ๋˜๊ฒŒ ๋œ๋‹ค.

  ์ •๋‹ต์ด 425์ธ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž. 123์„ ์ œ์‹œํ•˜๋ฉด '1 ์ŠคํŠธ๋ผ์ดํฌ', 456์„ ์ œ์‹œํ•˜๋ฉด '1 ๋ณผ 1 ์ŠคํŠธ๋ผ์ดํฌ', 789๋ฅผ ์ œ์‹œํ•˜๋ฉด '๋‚ซ์‹ฑ'์„ ์–ป๊ฒŒ ๋œ๋‹ค. ์ด ๊ฐ™์€ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด 3๊ฐœ์˜ ์ˆซ์ž๋ฅผ ๋ชจ๋‘ ๋งžํžŒ ๊ฒฝ์šฐ(3 ์ŠคํŠธ๋ผ์ดํฌ)์— ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋œ๋‹ค.

 

  ์ถ”๊ฐ€๋œ ์š”๊ตฌ ์‚ฌํ•ญ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  1. indent(์ธ๋ดํŠธ, ๋“ค์—ฌ ์“ฐ๊ธฐ) depth๋ฅผ 3์ด ๋„˜์ง€ ์•Š๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค. (์˜ˆ๋ฅผ ๋“ค์–ด while๋ฌธ ์•ˆ์— if๋ฌธ์ด ์žˆ์œผ๋ฉด ๋“ค์—ฌ ์“ฐ๊ธฐ๋Š” 2์ด๋‹ค.)
  2. 3ํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.  (์‚ผํ•ญ ์—ฐ์‚ฐ์ž → ๋ณ€์ˆ˜ ? ๊ฐ’ 1 : ๊ฐ’ 2)
  3. JUnit 5์™€ AssertJ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณธ์ธ์ด ์ •๋ฆฌํ•œ ๊ธฐ๋Šฅ ๋ชฉ๋ก์ด ์ •์ƒ ๋™์ž‘ํ•จ์„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋กœ ํ™•์ธํ•œ๋‹ค.

 

2. ๐Ÿ“ข ๊ณตํ†ต ํ”ผ๋“œ๋ฐฑ

1) README.md๋ฅผ ์ƒ์„ธํžˆ ์ž‘์„ฑํ•œ๋‹ค.

  ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๊ฐ€ ์–ด๋– ํ•œ ํ”„๋กœ์ ํŠธ์ด๋ฉฐ, ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๋‹ด๊ณ  ์žˆ๋Š”์ง€ ๊ธฐ์ˆ ํ•œ๋‹ค.

2) ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ์žฌ๊ฒ€ํ† ํ•œ๋‹ค.

  ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ํด๋ž˜์Šค ์„ค๊ณ„์™€ ๊ตฌํ˜„, ํ•จ์ˆ˜(๋ฉ”์„œ๋“œ) ์„ค๊ณ„์™€ ๊ตฌํ˜„๊ณผ ๊ฐ™์ด ๋„ˆ๋ฌด ์ƒ์„ธํ•˜๊ฒŒ ์ž‘์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค. ํด๋ž˜์Šค ์ด๋ฆ„, ํ•จ์ˆ˜(๋ฉ”์„œ๋“œ) ์‹œ๊ทธ๋‹ˆ์ฒ˜์™€ ๋ฐ˜ํ™˜ ๊ฐ’์€ ์–ธ์ œ๋“ ์ง€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋„ˆ๋ฌด ์„ธ์„ธํ•œ ๋ถ€๋ถ„๊นŒ์ง€ ์ •๋ฆฌํ•˜๊ธฐ๋ณด๋‹ค ๊ตฌํ˜„ํ•ด์•ผ ํ•  ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ์ •๋ฆฌํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•œ๋‹ค. ์ •์ƒ์ ์ธ ๊ฒฝ์šฐ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ, ์˜ˆ์™ธ์ ์ธ ์ƒํ™ฉ๋„ ๊ธฐ๋Šฅ ๋ชฉ๋ก์— ์ •๋ฆฌํ•œ๋‹ค. ํŠนํžˆ ์˜ˆ์™ธ ์ƒํ™ฉ์€ ์‹œ์ž‘ ๋‹จ๊ณ„์—์„œ ๋ชจ๋‘ ์ฐพ๊ธฐ ํž˜๋“ค๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๊ณ„์†ํ•ด์„œ ์ถ”๊ฐ€ํ•ด ๋‚˜๊ฐ„๋‹ค.

3) ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.

  ์‹œ์ž‘ํ•  ๋•Œ ๋ชจ๋“  ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ •๋ฆฌํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ถ€๋‹ด์„ ๊ฐ€์ง€๊ธฐ๋ณด๋‹ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๋ฌธ์„œ๋ฅผ ๊ณ„์† ์—…๋ฐ์ดํŠธํ•œ๋‹ค. ์ฃฝ์€ ๋ฌธ์„œ๊ฐ€ ์•„๋‹ˆ๋ผ ์‚ด์•„์žˆ๋Š” ๋ฌธ์„œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•œ๋‹ค.

4) ๊ฐ’์„ ํ•˜๋“œ ์ฝ”๋”ฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

  ๋ฌธ์ž์—ด, ์ˆซ์ž ๋“ฑ์˜ ๊ฐ’์„ ํ•˜๋“œ ์ฝ”๋”ฉํ•˜์ง€ ๋งˆ๋ผ. ์ƒ์ˆ˜(static final)๋ฅผ ๋งŒ๋“ค๊ณ  ์ด๋ฆ„์„ ๋ถ€์—ฌํ•ด ์ด ๋ณ€์ˆ˜์˜ ์—ญํ• ์ด ๋ฌด์—‡์ธ์ง€ ์˜๋„๋ฅผ ๋“œ๋Ÿฌ๋‚ด๋ผ.

private static final String STRIKE = "์ŠคํŠธ๋ผ์ดํฌ";
private static final String BALL = "๋ณผ";
private static final String NOTHING = "๋‚ซ์‹ฑ";

5) ๊ตฌํ˜„ ์ˆœ์„œ๋„ ์ฝ”๋”ฉ ์ปจ๋ฒค์…˜์ด๋‹ค.

  ํด๋ž˜์Šค๋Š” ์ƒ์ˆ˜, ๋ฉค๋ฒ„ ๋ณ€์ˆ˜, ์ƒ์„ฑ์ž, ๋ฉ”์„œ๋“œ ์ˆœ์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค.

class Game{
    private static final STRING STRIKE = "์ŠคํŠธ๋ผ์ดํฌ";
    
    private final Player;
    
    public void Game(Player player){
        this.player = player;
    }
    
    public void play(){
    }
}

6) ๋ณ€์ˆ˜ ์ด๋ฆ„์— ์ž๋ฃŒํ˜•์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

  ๋ณ€์ˆ˜ ์ด๋ฆ„์— ์ž๋ฃŒํ˜•, ์ž๋ฃŒ ๊ตฌ์กฐ ๋“ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

String carNameList = Console.readLine(); // X
String[] arrayString = carNameList.split(","); // X

7) ํ•œ ํ•จ์ˆ˜๊ฐ€ ํ•œ ๊ฐ€์ง€ ๊ธฐ๋Šฅ๋งŒ ๋‹ด๋‹นํ•˜๊ฒŒ ํ•œ๋‹ค

  ํ•จ์ˆ˜ ๊ธธ์ด๊ฐ€ ๊ธธ์–ด์ง„๋‹ค๋ฉด ํ•œ ํ•จ์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ์ผ์„ ํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ฒฝ์šฐ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ํ•œ ํ•จ์ˆ˜์—์„œ ์•ˆ๋‚ด ๋ฌธ๊ตฌ ์ถœ๋ ฅ, ์‚ฌ์šฉ์ž ์ž…๋ ฅ, ์œ ํšป๊ฐ’ ๊ฒ€์ฆ ๋“ฑ ์—ฌ๋Ÿฌ ์ผ์„ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์ด๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ๋ถ„๋ฆฌํ•œ๋‹ค. (์ด๊ฒŒ ๋ง์ฒ˜๋Ÿผ ์‰ฝ์ง€ ์•Š์Œ...๐Ÿ˜ฅ) 

private List<Integer> userInput(){
    System.out.println("์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”: ");
    String userInput = Console.readLine().trim();
    List<Integer> user = new ArrayList<>();
    for(char c : userInput.toCharArray()){
        user.add(Character.getNumericValue(c));
    }
    if(user.size() != 3){
        throw new IllegalArgumentException("[ERROR] ์ˆซ์ž๊ฐ€ ์ž˜๋ชป๋œ ํ˜•์‹์ž…๋‹ˆ๋‹ค.");
    }
    return user;
}

8) ์ฒ˜์Œ๋ถ€ํ„ฐ ํฐ ๋‹จ์œ„์˜ ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค.

  ํ…Œ์ŠคํŠธ์˜ ์ค‘์š”ํ•œ ๋ชฉ์  ์ค‘ ํ•˜๋‚˜๋Š” ๋‚ด๊ฐ€ ์ž‘์„ฑํ•˜๋Š” ์ฝ”๋“œ์— ๋Œ€ํ•ด ๋น ๋ฅด๊ฒŒ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๋Š” ๊ฒƒ์ด๋‹ค. ์‹œ์ž‘๋ถ€ํ„ฐ ํฐ ๋‹จ์œ„์˜ ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค๋ฉด ์ž‘์„ฑํ•œ ์ฝ”๋“œ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ธฐ๊นŒ์ง€ ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฌธ์ œ๋ฅผ ์ž‘๊ฒŒ ๋‚˜๋ˆ„๊ณ , ๊ทธ์ค‘ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์— ๊ฐ€๊นŒ์šด ๋ถ€๋ถ„๋ถ€ํ„ฐ ์ž‘๊ฒŒ ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋‚˜๊ฐ„๋‹ค.

  • ํฐ ๋‹จ์œ„์˜ ํ…Œ์ŠคํŠธ
    ์ˆซ์ž ์•ผ๊ตฌ ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•ด์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, ์ปดํ“จํ„ฐ ์ˆซ์ž์™€ ๋น„๊ตํ•˜์—ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์•Œ๋ ค์ค€๋‹ค.
  • ์ž‘์€ ๋‹จ์œ„์˜ ํ…Œ์ŠคํŠธ
    ์‚ฌ์šฉ์ž์˜ ์ˆซ์ž๊ฐ€ ์ปดํ“จํ„ฐ์˜ ์ˆซ์ž์™€ ํ•˜๋‚˜๋„ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ๋‚ซ์‹ฑ์„ ์ถœ๋ ฅํ•œ๋‹ค.
    ์‚ฌ์šฉ์ž์˜ ์ˆซ์ž๊ฐ€ ์ปดํ“จํ„ฐ์˜ ์ˆซ์ž์™€ 1๊ฐœ๋Š” ์ผ์น˜ํ•˜๊ณ , ์œ„์น˜๊ฐ€ ๋‹ค๋ฅด๋ฉด 1 ๋ณผ์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

3. ๐Ÿ’Š ๋ฐฐ์šด ์  & ๋А๋‚€ ์ 

1) ๊ธฐ๋Šฅ ๋ชฉ๋ก ์ž‘์„ฑ

  ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ์ž‘์„ฑํ•˜๋ฉด์„œ ์ƒ๊ฐ๋ณด๋‹ค ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ๋งŽ์ด ๊ฑธ๋ ธ๋‹ค. ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฐ ์ด์œ ๋กœ๋Š” '๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ์ฒ˜์Œ ์ž‘์„ฑํ•ด๋ด์„œ'์™€ '๋„ˆ๋ฌด ์ž์„ธํ•˜๊ฒŒ ์ž‘์„ฑํ•ด์„œ' ์ผ ๊ฒƒ์ด๋‹ค. 

  ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋‹ˆ ์‹ ๊ธฐํ•˜๊ฒŒ๋„ ๋’ค๋กœ back(?)ํ•˜๋Š” ์ผ์ด ์ž˜ ์—†์—ˆ๋‹ค. ์•„๋งˆ ํฐ ๊ทธ๋ฆผ์„ ์•Œ๊ณ  ์žˆ๋Š” ์ƒํƒœ์—์„œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ–ˆ๊ณ  ๊ทธ๋ฆฌ๊ณ  '๊ธฐ๋Šฅ ๋ชฉ๋ก'์„ ์ž‘์„ฑํ•˜๋ฉด์„œ ์ด๋ฏธ ์ž˜๋ชป๋  ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด ๋•๋ถ„์— ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ์ž‘์„ฑํ•˜๋ฉด์„œ ๋ณด๋‚ธ ์‹œ๊ฐ„๋ณด๋‹ค ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ๋’ค์—์„œ ์•„๋‚„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.๐Ÿ‘Š 

  ๋˜ํ•œ, ๊ธฐ๋Šฅ ๋ชฉ๋ก ๋‹จ์œ„๋กœ commit์„ ์ง„ํ–‰ํ•˜๋‹ˆ ๋” ๊น”๋”ํ•˜๊ฒŒ git์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

2) ํ•จ์ˆ˜๊ฐ€ ํ•œ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ํ•˜๋„๋ก ์„ค๊ณ„

  ์ด๊ฒŒ ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ต๋‹ค... ์ƒ๊ฐ๋ณด๋‹ค ๋” ๋งŽ์ด ๋ถ„๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ์—ฐ์Šต์ด ํ•„์š”ํ•˜๋‹ค!

  ํ•จ์ˆ˜๊ฐ€ ํ•œ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ธฐ์ค€์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ๊ฒ ์ง€๋งŒ, ์ผ๋‹จ์€ ํ•จ์ˆ˜์˜ ๊ธธ์ด๋ฅผ 15๋ผ์ธ์„ ๋„˜์–ด๊ฐ€์ง€ ์•Š๋„๋ก ๊ตฌํ˜„ํ•˜๋ฉด์„œ ํ•จ์ˆ˜๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ์˜์‹์ ์ธ ์—ฐ์Šต์„ ์ง„ํ–‰ํ•  ๊ฒƒ์ด๋‹ค. 

3) ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ

  ์—ฌ๊ธฐ์„œ ์‚ด์ง ๋ฉ˜ํƒˆ์ด ๋‚˜๊ฐ”๋‹ค...

  '๊ตฌํ˜„์„ ๋‹ค ์™„์„ฑํ•œ ๋’ค ์ด์ œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งŒ ์ž‘์„ฑํ•ด์„œ ์ œ์ถœํ•˜๋ฉด ๋˜๊ฒ ๊ตฌ๋‚˜!'๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋งŒ๋“ค๋ฉด์„œ '๋‹ค์‹œ ๋งŒ๋“ค์–ด์•ผ๊ฒ ๋‹ค...'๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์„ ๋„ˆ๋ฌด ๋งŽ์ด ์‚ฌ์šฉํ•˜์—ฌ ์•„์‰ฝ๊ฒŒ๋„ ๋‹ค์‹œ ๋งŒ๋“ค์ง€๋Š” ๋ชปํ–ˆ์ง€๋งŒ, ํ”„๋ฆฌ์ฝ”์Šค๊ฐ€ ๋๋‚œ ๋’ค ๋‹ค์‹œ ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค.

  ๊ทธ ๋‹น์‹œ ๊ฒช์—ˆ๋˜ ๋ฌธ์ œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  1. ์ž‘์€ ๋‹จ์œ„์˜ ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ƒ๊ฐ๋ณด๋‹ค ๊ธฐ๋Šฅ์˜ ํฌ๊ธฐ๊ฐ€ ์ปธ๊ณ  ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ํ•˜๋‚˜์˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. → ์ด๊ฒƒ์ด 'ํ•จ์ˆ˜๊ฐ€ ํ•œ ๊ฐ€์ง€ ๊ธฐ๋Šฅ๋งŒ์„ ๋‹ด๋‹นํ•˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค.'๋ผ๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค€๋‹ค.
  2. ์ ‘๊ทผ ์ œ์–ด์ž(private ๋“ฑ)๋กœ ์ธํ•˜์—ฌ ์ ‘๊ทผ์„ ํ•  ์ˆ˜ ์—†์—ˆ๋‹ค. ๋ฌผ๋ก  ์ ‘๊ทผ์ œ์–ด์ž๊ฐ€ ์žˆ์–ด๋„ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๊ธด ํ•˜๋‹ค.(๋ฒ ์ŠคํŠธ์˜ ๋ฐฉ๋ฒ•์€ ์•„๋‹ ๊ฒƒ์ด๋‹ค.) ์ƒ์„ฑ์ž์—์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋“ฑ์˜ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.
class Number{
	private final List<Integer> answer;
    
    public Number(List<Integer> answer){
        if(!isValidSize()){
            throw new IllegalArgumentException("[ERROR] ํฌ๊ธฐ๊ฐ€ ์ ์ ˆํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.");
        }
        if(!isDuplicatedNumber){
            throw new IllegalArgumentException("[ERROR] ์ค‘๋ณต๋œ ์ˆซ์ž๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.");
        }
        this.answer = answer;
    }
}

'๐Ÿ“‚ ํ›„๊ธฐ > ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค(ํ”„๋ฆฌ์ฝ”์Šค)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ํ”„๋ฆฌ์ฝ”์Šค 4์ฃผ์ฐจ(๋‹ค๋ฆฌ ๊ฑด๋„ˆ๊ธฐ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค  (0) 2022.11.24
ํ”„๋ฆฌ์ฝ”์Šค 3์ฃผ์ฐจ(๋กœ๋˜ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค  (0) 2022.11.24
ํ”„๋ฆฌ์ฝ”์Šค 1์ฃผ์ฐจ(์˜จ๋ณด๋”ฉ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค  (0) 2022.11.24
    '๐Ÿ“‚ ํ›„๊ธฐ/์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค(ํ”„๋ฆฌ์ฝ”์Šค)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • ํ”„๋ฆฌ์ฝ”์Šค 4์ฃผ์ฐจ(๋‹ค๋ฆฌ ๊ฑด๋„ˆ๊ธฐ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค
    • ํ”„๋ฆฌ์ฝ”์Šค 3์ฃผ์ฐจ(๋กœ๋˜ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค
    • ํ”„๋ฆฌ์ฝ”์Šค 1์ฃผ์ฐจ(์˜จ๋ณด๋”ฉ ๋ฏธ์…˜) - ์šฐ์•„ํ•œ ํ…Œํฌ์ฝ”์Šค
    Amenable
    Amenable
    CS, ์ž๋ฐ”, ์ž๋ฃŒ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์Šคํ”„๋ง, ์Šคํ”„๋ง ๋ถ€ํŠธ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐœ๋ฐœ์— ๊ด€ํ•œ ๋‚ด์šฉ์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”