[TIL] Day2_Baseball Game

์˜ค์ง„์„ ยท2024๋…„ 2์›” 6์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
2/29
post-thumbnail

Today I Learned

- Baseball Game

๐Ÿ’ก To do : ๊ณผ์ œ ์กฐ๊ฑด

  • ์ปดํ“จํ„ฐ๋Š” 0๊ณผ 9 ์‚ฌ์ด์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์ˆซ์ž 3๊ฐœ๋ฅผ ๋ฌด์ž‘์œ„๋กœ ๋ฝ‘์Šต๋‹ˆ๋‹ค. (ex) 123, 759
  • ์‚ฌ์šฉ์ž๋Š” ์ปดํ“จํ„ฐ๊ฐ€ ๋ฝ‘์€ ์ˆซ์ž๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
  • ์ปดํ“จํ„ฐ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์„ธ์ž๋ฆฌ ์ˆซ์ž์— ๋Œ€ํ•ด์„œ, ์•„๋ž˜์˜ ๊ทœ์น™๋Œ€๋กœ ์ŠคํŠธ๋ผ์ดํฌ(S)์™€ ๋ณผ(B)๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.
    • ์ˆซ์ž์˜ ๊ฐ’๊ณผ ์œ„์น˜๊ฐ€ ๋ชจ๋‘ ์ผ์น˜ํ•˜๋ฉด S
    • ์ˆซ์ž์˜ ๊ฐ’์€ ์ผ์น˜ํ•˜์ง€๋งŒ ์œ„์น˜๊ฐ€ ํ‹€๋ ธ์œผ๋ฉด B
  • ๊ธฐํšŒ๋Š” ๋ฌด์ œํ•œ์ด๋ฉฐ, ๋ช‡๋ฒˆ์˜ ์‹œ๋„ ํ›„์— ๋งž์ท„๋Š”์ง€ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.
  • ์ˆซ์ž 3๊ฐœ๋ฅผ ๋ชจ๋‘ ๋งž์ถ˜ ๊ฒฝ์šฐ, ๊ฒŒ์ž„์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

์ฒ˜์Œ ์˜ˆ์ƒ๋ณด๋‹ค ๋ณต์žกํ•˜๋„ค?

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

1. ์ธํ…”๋ฆฌ์ œ์ด ์—ฐ๋™

1๏ธโƒฃ ์ฒซ ํ™”๋ฉด์—์„œ ์˜ค๋ฅธ์ชฝ ์œ„์— ์‚ฌ๋žŒ ํ‘œ์‹œ์— +๊ฐ€ ๋˜์–ด์žˆ๋Š” ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค.

2๏ธโƒฃ Start Session ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค.

3๏ธโƒฃ ์ด๋Ÿฐ ์ฐฝ์ด ๋œจ๋ฉด permission์„ ํ™•์ธํ•˜๊ณ  Start session ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค. ๋‚ด ๊ฒฝ์šฐ์—๋Š” ์ฝ”๋“œ๋ฅผ ํ•จ๊ป˜ ์งœ๊ธฐ ์œ„ํ•ด์„œ Full access๋ฅผ ์„ ํƒํ–ˆ๋‹ค.

4๏ธโƒฃ ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๋ฉด ํ•˜๋‹จ์— Creating join link ์•Œ๋ฆผ์ด ๋œจ๊ณ  ์ดํ›„์— ์ž๋™์œผ๋กœ ๋งํฌ๋ฅผ copy ํ•ด์ค€๋‹ค.

5๏ธโƒฃ ํ˜น์‹œ๋‚˜ ๋ณต์‚ฌ๋œ ๋งํฌ๋ฅผ ์œ ์‹คํ–ˆ๋‹ค๋ฉด ์•„๊นŒ ๊ทธ ๋ฒ„ํŠผ์„ ๋‹ค์‹œ ํด๋ฆญํ•˜๋ฉด ์žฌ์ฐจ copy๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

6๏ธโƒฃ ์ƒ๋Œ€์—๊ฒŒ copy ๋œ ๋งํฌ๋ฅผ ์ฃผ๊ณ  ์ƒ๋Œ€๊ฐ€ ๋งํฌ๋ฅผ ํ†ตํ•ด ์—ฐ๋™ ์‹ ์ฒญ์„ ํ•˜๋ฉด accept ํ•˜๋ฉด ์ž˜ ์—ฐ๋™์ด ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๊ณต์งœ๋กœ๋Š” ์‚ผ์‹ญ๋ถ„์”ฉ๋งŒ ๋œ๋‹ค๋Š” ๊ฑฐ~ ์‚ผ์‹ญ๋ถ„์— ํ•œ ๋ฒˆ์”ฉ ์œ„์˜ ๋‚ด์šฉ์„ ๋ฐ˜๋ณตํ•ด์•ผํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  terminal์€ ๋งํฌ๋ฅผ ํ†ตํ•ด ๋“ค์–ด์˜จ ์ƒ๋Œ€๋Š” ์†๋Œˆ ์ˆ˜ ์—†๋‹ค. ์—ฐ๋™์ด ์—๋Ÿฌ๊ฐ€ ๋‚œ ์ค„ ์•Œ๊ณ  ํ—ˆ๋‘ฅ๋Œ€๋˜ ์šฐ๋ฆฌ์˜ ๋ชจ์Šต^^!

2. ๊ตฌ์กฐ ํŒŒ์•…ํ•˜๊ธฐ

์ผ๋‹จ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋ฅผ ํ•จ๊ป˜ ํŒŒ์•…ํ–ˆ๋‹ค.
๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ๊ธฐ์ดˆ ๊ธฐ๋Šฅ๋“ค์˜ ๋ฆฌ์ŠคํŠธ์™€ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์„ ์ฒดํฌํ–ˆ๋‹ค.

โœ”๏ธ ๋žœ๋ค์œผ๋กœ 3์ž๋ฆฌ ์ˆซ์ž ๋งŒ๋“ค๊ธฐ
ย  ย  ย ์ด ๋•Œ 3์ž๋ฆฌ ์ˆ˜์—๋Š” ์ค‘๋ณต์ด ์—†์–ด์•ผ ํ•จ

โœ”๏ธ 3์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ž…๋ ฅ ๋ฐ›๊ธฐ
ย  ย  ย ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ค‘๋ณต ๊ฐ’์ผ ๋•Œ ์ฒ˜๋ฆฌ ํ•„์š”

โœ”๏ธ ์ž…๋ ฅ๋ฐ›์€ ์ˆ˜์™€ ๋žœ๋ค ์ˆ˜๋ฅผ ๋น„๊ตํ•ด ๋ณผ / ์ŠคํŠธ๋ผ์ดํฌ ํŒ๋‹จํ•˜๊ธฐ
ย  ย  ย ๋ณผ : ์ž๋ฆฌ๊ฐ€ ๋‹ค๋ฅธ ๊ฐ™์€ ์ˆซ์ž๊ฐ€ ์žˆ๋Š”์ง€
ย  ย  ย ์ŠคํŠธ๋ผ์ดํฌ : ๊ฐ™์€ ์ˆซ์ž, ๊ฐ™์€ ์ž๋ฆฌ

โœ”๏ธ ์ •๋‹ต์„ ๋งž์ถ”์ง€ ์•Š์•˜์œผ๋ฉด ๋ณผ / ์ŠคํŠธ๋ผ์ดํฌ ๊ฐœ์ˆ˜ ์•Œ๋ ค์ฃผ๊ณ  ๋‹ค์‹œ ์ž…๋ ฅ๋ฐ›๊ธฐ
ย  ย  ย '1B2S' ์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์•Œ๋ ค์ฃผ๊ธฐ

โœ”๏ธ 3S์ผ ๋•Œ์—๋Š” ์ •๋‹ต์„ ๋งž์ท„์Œ์„ ์•Œ๋ ค์ฃผ๊ณ  ๊ฒŒ์ž„์„ ์ข…๋ฃŒํ•˜๊ธฐ
ย  ย  ย 3S : ๋ชจ๋“  ์ˆซ์ž๊ฐ€ ๊ฐ™์€ ์ˆซ์ž์— ๊ฐ™์€ ์ž๋ฆฌ์˜€์„ ๋•Œ = ์ •๋‹ต

์ฒ˜์Œ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ํ’€์–ด๋‚˜๊ฐ€๊ธฐ๋กœ ๊ฒฐ์ •!
์–ด๋–ค ๋ฐฉ์‹์„ ์ ์šฉ์‹œํ‚ฌ์ง€์— ๋Œ€ํ•ด์„œ ๊ธฐ๋Šฅ ํ•˜๋‚˜์”ฉ ์ƒ๊ฐํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.


3. ์ฝ”๋“œ ์งœ๊ธฐ

1) ๋žœ๋ค์œผ๋กœ 3์ž๋ฆฌ ์ˆซ์ž ๋งŒ๋“ค๊ธฐ

์‰ฝ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ์ด๋•Œ๋Š” ๋ชฐ๋ž์ฃ , Random ํด๋ž˜์Šค๊ฐ€ import ๋˜์ง€ ์•Š์„ ์ค„์ด์•ผ...
์—ด์‹ฌํžˆ ์ฐพ์•„๋ดค์ง€๋งŒ ๋„ˆ๋ฌด ๋‹ค์–‘ํ•œ ์›์ธ๋“ค์ด ์กด์žฌํ•˜๋Š” ๋‚˜๋จธ์ง€ ์–ด๋А ๊ฒƒ์ด ์ง„์งœ ์›์ธ์ด์—ˆ๋Š”์ง€ ์—ฌ์ „ํžˆ ๋ชจ๋ฅด๊ฒ ๋‹ค. ์—ฌ๊ธฐ์ €๊ธฐ ์‚ดํŽด๋ณธ ๊ฒฐ๊ณผ Java์—๋Š” ๋”ฑํžˆ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ๊ณ  ์•„๋ฌด๋ž˜๋„ intelliJ ์ž์ฒด์˜ ๋ฌธ์ œ์˜€๋˜ ๊ฒƒ ๊ฐ™๋‹ค. File -> Project Structure -> Language level ์„ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ์ ์šฉ์‹œ์ผฐ๋‹ค๊ฐ€ ๋‹ค์‹œ SDK default๋กœ ๋ณ€ํ™˜ํ•˜๋‹ˆ ํ•ด๊ฒฐ์ด ๋˜์—ˆ๋‹ค! ์ด ๋ฌธ์ œ๋กœ ์ตœ์†Œ 30๋ถ„ ์ตœ๋Œ€ 1์‹œ๊ฐ„ ์ •๋„ ๋‚ ์•„๊ฐ„ ๊ฒƒ ๊ฐ™๋‹ค..

๋ฌดํŠผ ์ž˜ import ๋œ ํ›„์— ์ผ๋‹จ์€ ์„ธ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ๋ฐ›์•„ ์ค‘๋ณต๊ฐ’ ๊ฒ€์‚ฌ๋ฅผ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

        // ๋žœ๋ค ์„ ์–ธ์„ ํ•˜๊ณ 
        Random random = new Random();
        
        // ์ผ๋‹จ์€ ์ค‘๋ณต ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•ด ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์ฃผ์—ˆ๋‹ค.
        int[] ansAry = new int[3];
        
        // do ~ while ๋ฌธ์„ ์‚ฌ์šฉํ•œ ์ด์œ !
        // ์ผ๋‹จ ์„ธ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ƒ์„ฑํ•œ ํ›„์— ์ค‘๋ณต๊ฐ’์ด ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ ํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—
        do {
            // ์„ธ ์ž๋ฆฌ ์ˆซ์ž๊ฐ€ ๋‹ค ๋‹ค๋ฅผ ๋•Œ๊นŒ์ง€ ์ƒ์„ฑ
            ansAry[0] = random.nextInt(9) + 1;
            ansAry[1] = random.nextInt(9) + 1;
            ansAry[2] = random.nextInt(9) + 1;
        } while (ansAry[0] == ansAry[1] || ansAry[1] == ansAry[2] || ansAry[0] == ansAry[2]); // ํ•˜๋‚˜๋ผ๋„ ๊ฐ™์€ ๊ฐ’์ด ์žˆ์œผ๋ฉด ๋‹ค์‹œ ์ƒ์„ฑํ•˜๋„๋ก ํ•˜์˜€๋‹ค.
        
         // ์ค‘๋ณต๋œ ๊ฐ’ ์—†๋Š” ์„ธ์ž๋ฆฌ ์ˆ˜๊ฐ€ ์ž˜ ๋งŒ๋“ค์–ด์กŒ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๋„ ์งฐ๋‹ค.
         // ๋งˆ์ง€๋ง‰์—๋Š” ์ฃผ์„์ฒ˜๋ฆฌ ํ•ด์ฃผ์—ˆ๋‹ค.
         answer = ansAry[0] * 100 + ansAry[1] * 10 + ansAry[2];
         System.out.println("๋‹ต : " + answer);

2) 3์ž๋ฆฌ ์ˆซ์ž ์ž…๋ ฅ ๋ฐ›๊ธฐ

์ž ๋งŒ๋“ค์—ˆ์œผ๋‹ˆ ์ด์ œ ์ž…๋ ฅ์„ ๋ฐ›์•„์•ผ์ง€...

3์ž๋ฆฌ ์ˆซ์ž๋ฅผ intํ˜•์œผ๋กœ ์ž…๋ ฅ๋ฐ›์•„ ๋ฐฐ์—ด์— ์–ด๋–ป๊ฒŒ ๋„ฃ์–ด์•ผ ํ• ์ง€ ์กฐ๊ธˆ ๊ณ ๋ฏผํ–ˆ๋‹ค.
์ฒ˜์Œ์—๋Š” string์œผ๋กœ ๋ฐ›์•„์„œ split์œผ๋กœ ๋‚˜๋ˆˆ ๋‹ค์Œ์— ํ˜•๋ณ€ํ™˜ ํ•ด์„œ ์ง‘์–ด๋„ฃ์–ด์•ผ ํ• ์ง€์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๋ฌธ๋“ ์•„์ฃผ ์ข‹์€ ์ƒ๊ฐ์ด ๋‚ฌ๋‹ค. ์œ„์— ์ˆซ์ž ์ž˜ ๋งŒ๋“ค์–ด์กŒ๋Š”์ง€ ํ…Œ์ŠคํŠธ ํ•˜๋Š” ์ฝ”๋“œ ์ง  ๊ฒƒ์ฒ˜๋Ÿผ ๋‚˜๋ˆ„๊ธฐ ํ•ด์„œ ๋„ฃ์œผ๋ฉด ๋  ์ผ ์•„๋‹Œ๊ฐ€..? ์‹ถ์–ด์„œ ์‹ ๋‚˜๊ฐ€์ง€๊ณ  ์ฝ”๋“œ ์“ฐ๋‹ค๊ฐ€ ๋ง‰ํ˜€๋ฒ„๋ ธ๋‹ค.

์ผ๋‹จ 100์œผ๋กœ ๋‚˜๋ˆ„๋ฉด ์ฒซ๋ฒˆ์งธ ์ˆซ์ž๋Š” ๋–จ์–ด์งˆํ…Œ๊ณ  10์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋Š” 1์˜์ž๋ฆฌ ์ˆซ์ž๊ฐ€ ๋˜๋Š”๋ฐ ์—ฅ ๋‘ ๋ฒˆ์งธ๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌํ•˜์ง€? ์ˆ˜ํ•™... ์—ด์‹ฌํžˆ ํ•  ๊ฑธ ํ•˜๋Š” ์ƒ๊ฐ์„ ํ•˜๋‹ค๊ฐ€ ๊ฒฐ๊ตญ ChatGPT ์„ ์ƒ๋‹˜์—๊ฒŒ ์—ฌ์ญค๋ณด์•˜๋‹ค. 10์œผ๋กœ ๋‚˜๋ˆˆ ๋‹ค์Œ์— 10์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค๊ณ  ํ•˜์…จ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ์„ผ์„ธ...!

 			// Scanner ์„ ์–ธ
            Scanner sc = new Scanner(System.in);
            
            System.out.println("์„ธ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”");
            System.out.print(">> ");
            // int ๊ฐ’ ์ž…๋ ฅ๋ฐ›๊ธฐ
            inputNum = sc.nextInt();

            // ๋ฐฐ์—ด์— ๋„ฃ๊ธฐ
            inputAry[0] = inputNum / 100;
            inputAry[1] = (inputNum / 10) % 10;
            inputAry[2] = inputNum % 10;
            
            // ๋ฐฐ์—ด์— ์ž˜ ๋“ค์–ด๊ฐ”๋Š”์ง€ ํ™•์ธ
            System.out.println(Arrays.toString(inputAry));

์ž ์ด์ œ ๋ญ˜ ํ•  ์ฐจ๋ก€์ธ๊ฐ€..!
์ค‘๋ณต๊ฐ’์„ ํ™•์ธํ•ด์•ผ์ง€...
๊ทธ๋ƒฅ ์œ„์— do ~ while๋ฌธ์—์„œ ์ผ๋˜ ์กฐ๊ฑด ๊ทธ๋Œ€๋กœ ์จ๋„ ๋˜๋Š” ๊ฑฐ๊ธด ํ•œ๋ฐ ์ฐพ์•„๋ณด๋‹ˆ Set๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฒ•์ด ์žˆ๊ธธ๋ž˜ ๊ฐ€์ ธ๋‹ค ์จ๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋ฉ”์†Œ๋“œ๋ฅผ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•ด์„œ boolean ๊ฐ’์„ ๋ฐ›์•„ true์ผ ๋•Œ if๋ฌธ์ด ์‹คํ–‰๋˜๋„๋ก ๋งŒ๋“ค์—ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์žฌ์ฐจ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ž…๋ ฅ๋ฐ›๊ธฐ ์œ„ํ•ด ์ž…๋ ฅ ๋ฐ›๋Š” ๊ณณ๋ถ€ํ„ฐ์˜ ์ฝ”๋“œ๋Š” ์ „๋ถ€ whlie๋ฌธ์œผ๋กœ ๋ฌถ์–ด์ฃผ์—ˆ๋‹ค.
์ž…๋ ฅ๋ถ€ํ„ฐ while๋กœ ๋ฌถ์€ ์ด์œ ๋Š” ๊ธฐ์กด์˜ ์ •๋‹ต๊ฐ’(๋žœ๋ค๊ฐ’)์ด ๋‹ฌ๋ผ์ง€๋ฉด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

			// main method์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ
            // checkNum method๋ฅผ ๋ถˆ๋Ÿฌ์™€ inputAry๊ฐ’์„ ๋„ฃ์–ด์ฃผ๊ณ  boolean๊ฐ’์„ ๋ฐ›๋Š”๋‹ค.
            if (checkNum(inputAry)) {
                System.out.println("Error: ์ค‘๋ณต ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.");
                break; // while๋ฌธ์„ ๋๋‚ด๊ณ  ๊ฒŒ์ž„ ์ข…๋ฃŒ.
            }
            // ์ค‘๋ณต ์ˆซ์ž ์ฒดํฌ method
            static boolean checkNum(int[] inputAry) {
            	// Set ์„ ์–ธ
                Set<Integer> set = new HashSet<>();
				
                // inputAry์—์„œ ๊ฐ’์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๊บผ๋‚ด set์— ๋„ฃ๋Š”๋‹ค.
                for (int num : inputAry) {
                	// set ํŠน์„ฑ์ƒ ์ค‘๋ณต๊ฐ’์ด ์žˆ์œผ๋ฉด ์ €์žฅ์ด ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— 
                    // num์„ set์— ๋„ฃ์„๋•Œ false๊ฐ’์ด ๋œจ๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
                    if (!set.add(num)) {
                        return true;
                    }
                }
                // ์ค‘๋ณต์ด ์—†์œผ๋ฉด set์— ๋ชจ๋“  ๊ฐ’์ด ์™„์ „ํžˆ ๋“ค์–ด๊ฐ€๊ณ 
                // ๋”ฐ๋ผ์„œ if๋ฌธ ์กฐ๊ฑด์„ ํ”ผํ•ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
                return false;

            }

3) ์ž…๋ ฅ๋ฐ›์€ ์ˆ˜์™€ ๋žœ๋ค ์ˆ˜๋ฅผ ๋น„๊ตํ•ด ๋ณผ / ์ŠคํŠธ๋ผ์ดํฌ ํŒ๋‹จํ•˜๊ธฐ

์ด๊ฒŒ ์†”์งํžˆ... ์ œ์ผ ์–ด๋ ค์› ๋‹ค. ์ƒ๊ฐํ•  ๊ฑฐ๋ฆฌ๋„ ๋งŽ๊ณ  ๊ดœํžˆ ์˜ค๊ธฐ ์ƒ๊ฒจ์„œ GPT ์„ผ์„ธ ์•ˆ์ฐพ์•„๊ฐ€๋ ค๋‹ค๋ณด๋‹ˆ ์˜ค๋ฅ˜๊ฐ€ ์—„์ฒญ์—„์ฒญ ๋‚˜์™”๋‹ค. ๊ฒฐ๊ตญ ๋ฌผ์–ด๋ดค๋Š”๋ฐ๋„ ์˜ ์ด์ƒํ•ด์„œ ๊ณ ์น˜๊ณ  ๊ณ ์น˜๋‹ค ์„ฑ๊ณต. ๋„ˆ๋ฌด ๊ฐ๊ฒฉ์Šค๋Ÿฌ์› ์–ด์š”.

์ด ์ƒํ™ฉ์˜ ๋ฌธ์ œ๋Š” ๋ญ์˜€๋‚˜๋ฉด ๋‚ด๊ฐ€ ball์€ strike๋ฅผ ํฌํ•จํ•˜๋Š” ๊ด€๊ณ„๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค.
๊ทธ๋ƒฅ ball๊ณผ strike๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ๋ณด์•˜์–ด์•ผ ํ•˜๋Š”๋ฐ ball์ด ๋” ๋„“์€ ๊ฐœ๋…์ด๊ณ  strike๊ฐ€ ๋” ์ข์€ ๊ฐœ๋…์ด๋ผ๋Š” ์ƒ๊ฐ์— ์‚ฌ๋กœ์žกํ˜€์„œ ๋ถ„๋ฆฌ๋ฅผ ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋ชจ๋‘ ๊ฐ™์•„์•ผ ํ•˜๋Š” ๊ฒƒ์ด ์ฝ”๋“œ๊ฐ€ ๋” ์‰ฝ๊ฒŒ ๋‚˜์˜ค๋Š”๋ฐ๋„... ํŒ€์› ๋ถ„์ด ball ์„ธ๋Š” if๋ฌธ ์กฐ๊ฑด์„ ์ œ์‹œํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ๋‚ด๊ฐ€ ๋‹ค ๋ณด์ง€๋„ ์•Š๊ณ  ์ž๊พธ ๋งˆ์Œ์ด ๊ธ‰ํ•ด์ ธ์„œ ๊ฐ€๋กœ๋ง‰์•˜๋‹ค. ๊ทธ๋ž˜๋†“๊ณ  ๋‚ด๊ฐ€ ํ–ˆ๋‹ค. ๋‚˜์ค‘์— ์ œ๊ฐ€ ํ•˜๋ ค๋˜ ๊ฒŒ ๊ทธ๊ฑฐ์˜€์–ด์š”... ํ•˜์…”๊ฐ€์ง€๊ณ  ๋ฐ˜์„ฑ ์ข€ ํ–ˆ๋‹ค.

์ผ๋‹จ method ๋ถ„๋ฆฌ๋ฅผ ํ–ˆ๋‹ค.
์‚ฌ์œ  = ๋‚˜์ค‘์— int ๊ฐ’ ๋ฐ›์•„์™€์„œ ์ถœ๋ ฅํ•  ๋•Œ ์ด๊ฒŒ ํ›จ์”ฌ ํŽธํ•  ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์†”์งํžˆ ๊ทธ๋ƒฅ ์•„๋Š” ๊ฑฐ ์ข€ ์จ๋ณด๊ณ  ์‹ถ์—ˆ๋‹ค.

             // main method์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ
             // ball/strike ์ˆซ์ž ๋ฐ›์•„์˜ค๊ธฐ
             ballCount(ansAry,inputAry);
             strCount(ansAry, inputAry);
			 // ๋žœ๋ค ๋ฐฐ์—ด๊ณผ ์ž…๋ ฅ๋ฐ›์€ ๋ฐฐ์—ด ๋ฐ›์•„์™€์„œ ball๊ฐ’ int๋กœ ๋ฐ˜ํ™˜
             static int ballCount(int[] ansAry, int[] inputAry) {
                    // ball++๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์„ ์–ธํ•  ๋•Œ ๊ฐ’์„ ์ €์žฅํ•ด์ค˜์•ผ ํ•œ๋‹ค.
                    int ball = 0;
					
                    // ๋‘ ๋ฐฐ์—ด์˜ ์ „์ฒด๋ฅผ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์ฒฉ for๋ฌธ ์‚ฌ์šฉ
                    for (int i = 0; i < 3; i++) {
                        for (int j = 0; j < 3; j++) {
                        	// i์™€ j๊ฐ€ ๋‹ค๋ฅด๋‹ค = ์ž๋ฆฌ(์œ„์น˜)๊ฐ€ ๋‹ค๋ฅด๋‹ค
                            // ansAry[i] == inputAry[j] -> ์ˆซ์ž๊ฐ€ ๊ฐ™๋‹ค
                            if (i != j && ansAry[i] == inputAry[j]) {
                                ball++; // ball count ์˜ฌ๋ฆฌ๊ธฐ
                            }
                        }
                    }
                    return ball; // ball์˜ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜
                }
				
                // ๋žœ๋ค ๋ฐฐ์—ด๊ณผ ์ž…๋ ฅ๋ฐ›์€ ๋ฐฐ์—ด ๋ฐ›์•„์™€์„œ strike๊ฐ’ int๋กœ ๋ฐ˜ํ™˜
                static int strCount(int[] ansAry, int[] inputAry) {
                	// strike++๋ฅผ ์œ„ํ•œ ๊ฐ’ ์ €์žฅ
                    int strike = 0;
					
                    // ๊ฐ™์€ ์ž๋ฆฌ์— ๊ฐ™์€ ์ˆซ์ž๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด์„œ๋Š”
                    // ๊ตณ์ด ์ค‘์ฒฉ for๋ฌธ์„ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
                    // i๋งŒ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ
                    for (int i = 0; i < ansAry.length; i++) {
                    	// ๋‘ ๋‹ค๋ฅธ ๋ฐฐ์—ด์˜ ๊ฐ™์€ ์œ„์น˜์— ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง€๋Š”์ง€ ํ™•์ธ
                        if (ansAry[i] == inputAry[i]) {
                            strike++; //strike count ์˜ฌ๋ฆฌ๊ธฐ
                        }
                    }
                    return strike; // strike์˜ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜
                }

4) ์ •๋‹ต์„ ๋งž์ถ”์ง€ ์•Š์•˜์œผ๋ฉด ๋ณผ / ์ŠคํŠธ๋ผ์ดํฌ ๊ฐœ์ˆ˜ ์•Œ๋ ค์ฃผ๊ณ  ๋‹ค์‹œ ์ž…๋ ฅ๋ฐ›๊ธฐ & 3S์ผ ๋•Œ์—๋Š” ์ •๋‹ต์„ ๋งž์ท„์Œ์„ ์•Œ๋ ค์ฃผ๊ณ  ๊ฒŒ์ž„์„ ์ข…๋ฃŒํ•˜๊ธฐ

์ด๊ฑด ํ•œ ๋ฒˆ์— ์ง„ํ–‰ํ–ˆ๋‹ค. ์•„๊นŒ ๋ฐ›์•„์˜จ int๊ฐ’์„ main method์˜ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ์ง‘์–ด ๋„ฃ๊ณ  if ~ else if๋ฅผ ์ด์šฉํ•ด์„œ ์ •๋‹ต์ด ์•„๋‹ˆ๋ฉด(strike != 3) ๋ณผ๊ณผ ์ŠคํŠธ๋ผ์ดํฌ ๊ฐœ์ˆ˜๋ฅผ ์•Œ๋ ค์ฃผ๊ณ  ๋‹ค์‹œ while๋ฌธ์„ ๋ฐ˜๋ณตํ•˜๊ณ , ์ •๋‹ต์ด๋ฉด (strike == 3) ์ •๋‹ต์ด๋ผ๊ณ  ์•Œ๋ ค์ค€ ๋’ค while๋ฌธ์„ ์ข…๋ฃŒํ–ˆ๋‹ค.

                // ๋ณผ, ์ŠคํŠธ๋ผ์ดํฌ ์ˆซ์ž ๋ฐ›๊ธฐ
                int ball = ballCount(ansAry,inputAry);
                int strike = strCount(ansAry, inputAry);


                // ๋ณผ, ์ŠคํŠธ๋ผ์ดํฌ ํ‘œ์‹œํ•˜๊ณ  3 ์ŠคํŠธ๋ผ์ดํฌ๊ฐ€ ์•„๋‹ˆ๋ฉด ์•Œ๋ ค์ฃผ๊ธฐ & ๊ณ„์† ์ง„ํ–‰
                if (strike != 3) {
                    System.out.println(ball+"B"+strike+"S");
                } else if (strike == 3) { // 3 ์ŠคํŠธ๋ผ์ดํฌ๋ฉด ์ •๋‹ต์ž„์„ ์•Œ๋ ค์ฃผ๊ณ  ๊ฒŒ์ž„ ์ข…๋ฃŒ
                    System.out.println("์ •๋‹ต์ž…๋‹ˆ๋‹ค!");
                    System.out.println("WIN!!");
                    break;
                }

๊ทธ๋ ‡๊ฒŒ ์™„์„ฑ๋œ ์ฝ”๋“œ์™€ ์‚ฌ์ง„

import java.lang.reflect.Array;
import java.util.*;

// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
    public static void main(String[] args) {
        // 1. ๋žœ๋ค์ˆซ์ž ๋งŒ๋“ค๊ธฐ
        Random random = new Random();
        Scanner sc = new Scanner(System.in);

        int[] ansAry = new int[3];
        
        // ์„ธ ์ž๋ฆฌ ์ˆซ์ž๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ์ง€ ํ™•์ธ
        do {
            // [0~9] ์„ธ ์ž๋ฆฌ ์ˆซ์ž๊ฐ€ ๋‹ค ๋‹ค๋ฅผ ๋•Œ๊นŒ์ง€ ์ƒ์„ฑ
            ansAry[0] = random.nextInt(10);
            ansAry[1] = random.nextInt(10);
            ansAry[2] = random.nextInt(10);
        } while (ansAry[0] == ansAry[1] || ansAry[1] == ansAry[2] || ansAry[0] == ansAry[2]);

//      ๋‹ต ํ™•์ธ ํ…Œ์ŠคํŠธ์šฉ
//		System.out.println(Arrays.toString(ansAry));

        System.out.println("์•ผ๊ตฌ๊ฒŒ์ž„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค!");
        int inputNum;
        int inputAry[] = new int[3];

        while (true) {
            // ์ˆซ์ž ์ž…๋ ฅ๋ฐ›๊ธฐ
            System.out.println("์„ธ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”(๊ฒŒ์ž„์„ ์ข…๋ฃŒํ•˜๊ณ  ์‹ถ์œผ๋ฉด 0์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”)");
            System.out.print(">> ");
            inputNum = sc.nextInt();

            if (inputNum == 0) {
                System.out.println("๊ฒŒ์ž„์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.");
                break;
            }

            // ๋ฐฐ์—ด์— ๋„ฃ๊ธฐ
            inputAry[0] = inputNum / 100;
            inputAry[1] = (inputNum / 10) % 10;
            inputAry[2] = inputNum % 10;

//          ๋ฐฐ์—ด์— ์ž˜ ๋“ค์–ด๊ฐ”๋Š”์ง€ ํ™•์ธ
//          System.out.println(Arrays.toString(inputAry));

            if (checkNum(inputAry)) {
                System.out.println("Error: ์ค‘๋ณต ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.");
                break;
            }

            // ๋ณผ, ์ŠคํŠธ๋ผ์ดํฌ ์ˆซ์ž ๋ฐ›๊ธฐ
            int ball = ballCount(ansAry,inputAry);
            int strike = strCount(ansAry, inputAry);


            // ๋ณผ, ์ŠคํŠธ๋ผ์ดํฌ ํ‘œ์‹œํ•˜๊ณ  3 ์ŠคํŠธ๋ผ์ดํฌ์ผ ์‹œ ๊ฒŒ์ž„ ์ข…๋ฃŒ
            if (strike != 3) {
                System.out.println(ball+"B"+strike+"S");
            } else if (strike == 3) {
                System.out.println("์ •๋‹ต์ž…๋‹ˆ๋‹ค!");
                System.out.println("WIN!!");
                break;
            }

        }


    }

    // ๋ณผ ํ™•์ธ
    static int ballCount(int[] ansAry, int[] inputAry) {
        int ball = 0;

        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                if (i != j && ansAry[i] == inputAry[j]) {
                    ball++;
                }
            }
        }
        return ball;
    }

	// ์ŠคํŠธ๋ผ์ดํฌ ํ™•์ธ
    static int strCount(int[] ansAry, int[] inputAry) {
        int strike = 0;

        for (int i = 0; i < ansAry.length; i++) {
            if (ansAry[i] == inputAry[i]) {
                strike++;
            }
        }
        return strike;
    }

    // ์ค‘๋ณต ๊ฐ’ ํ™•์ธํ•˜๊ธฐ
    static boolean checkNum(int[] inputAry) {
        Set<Integer> set = new HashSet<>();

        for (int num : inputAry) {
            if (!set.add(num)) {
                return true;
            }
        }
        return false;

    }

}

์™€์•„์•… ๋ฟŒ๋“ฏํ•ด!!


<์–ป์–ด๊ฐ€๋Š” ๊ฒƒ>
์•„๋ฌด๋ž˜๋„ ํ˜‘๋™์‹ฌ์„ ๋” ๊ธธ๋Ÿฌ์•ผ ํ•˜๊ณ  ํ˜ผ์ž์„œ ๋‹ค ํ•ด๋ฒ„๋ฆฌ๋ ค๋Š” ์š•๋ง์„ ๋ฒ„๋ ค์•ผ๊ฒ ๋‹ค. ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” ์• ์ดˆ์— ๋ถ„๋‹ด์„ ํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์งœ๊ณ  ์•ˆ๋˜๋Š” ๋ถ€๋ถ„์„ ์„œ๋กœ ๋„์™€์„œ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ƒ๊ฐํ•ด์•ผ๊ฒ ๋‹ค. ์˜จ๋ผ์ธ์œผ๋กœ ์ง„ํ–‰๋˜๋Š” ๊ฒƒ์ด๋ผ ๋ˆˆ ์•ž์— ์‚ฌ๋žŒ์ด ์—†์œผ๋‹ˆ ๋” ๊ทธ๋Ÿฌ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ž๊พธ ๋„ˆ๋ฌด ํฐ ์ˆฒ๋งŒ ๋ณด๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ๋„ ๊ณ ์ณ์•ผ ํ•œ๋‹ค. ๋ˆˆ์•ž์— ์žˆ๋Š” ๊ฑธ ์ผ๋‹จ ์ฒ˜๋ฆฌํ•œ ๋‹ค์Œ์— ๋„˜์–ด๊ฐ€์„œ ์˜ค๋ฅ˜ ๋‚˜๋ฉด ๋‹ค์‹œ ๋Œ์•„์˜ค๊ณ  ๊ทธ๋ž˜์•ผ ํ•˜๋Š”๋ฐ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋„ˆ๋ฌด ์™„๋ฒฝํ•˜๊ฒŒ ํ•˜๋ ค๋‹ค ๋ณด๋‹ˆ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค.
๊ทธ๋ž˜๋„ ์ธํ…”๋ฆฌ์ œ์ด ๋‹ค๋ฃจ๋Š” ๋ฒ•๊ณผ ๊ฒ€์ƒ‰ ๋Šฅ๋ ฅ์ด ๋งŽ์ด ๋Š˜์—ˆ๋‹ค^^...
์ž๋ฐ” ์‹ค๋ ฅ๋„... ๋งŽ์ด ์„ฑ์žฅํ•œ ๊ฒŒ ๋งž๊ฒ ์ง€?

profile
โ‚ แข. ฬซ .แข โ‚Ž

0๊ฐœ์˜ ๋Œ“๊ธ€