๐Ÿ”ฅ[99ํด๋Ÿฝ ์ฝ”ํ…Œ ์Šคํ„ฐ๋””] 23์ผ์ฐจ TIL - ๋งˆ๋ฒ•์˜ ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ

HOONSSACยท2024๋…„ 8์›” 13์ผ
1

99Club Coding Test Study

๋ชฉ๋ก ๋ณด๊ธฐ
23/41
post-thumbnail
post-custom-banner

โณ๋ฌธ์ œ

๋งˆ๋ฒ•์˜ ์„ธ๊ณ„์— ์‚ฌ๋Š” ๋ฏผ์ˆ˜๋Š” ์•„์ฃผ ๋†’์€ ํƒ‘์— ์‚ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํƒ‘์ด ๋„ˆ๋ฌด ๋†’์•„์„œ ๊ฑธ์–ด ๋‹ค๋‹ˆ๊ธฐ ํž˜๋“  ๋ฏผ์ˆ˜๋Š” ๋งˆ๋ฒ•์˜ ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ๋ฒ•์˜ ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ์˜ ๋ฒ„ํŠผ์€ ํŠน๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ๋ฒ•์˜ ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ์—๋Š” -1, +1, -10, +10, -100, +100 ๋“ฑ๊ณผ ๊ฐ™์ด ์ ˆ๋Œ“๊ฐ’์ด 10c (c โ‰ฅ 0 ์ธ ์ •์ˆ˜) ํ˜•ํƒœ์ธ ์ •์ˆ˜๋“ค์ด ์ ํžŒ ๋ฒ„ํŠผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ๋ฒ•์˜ ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ์˜ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ˜„์žฌ ์ธต ์ˆ˜์— ๋ฒ„ํŠผ์— ์ ํ˜€ ์žˆ๋Š” ๊ฐ’์„ ๋”ํ•œ ์ธต์œผ๋กœ ์ด๋™ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋‹จ, ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ๊ฐ€ ์œ„์น˜ํ•ด ์žˆ๋Š” ์ธต๊ณผ ๋ฒ„ํŠผ์˜ ๊ฐ’์„ ๋”ํ•œ ๊ฒฐ๊ณผ๊ฐ€ 0๋ณด๋‹ค ์ž‘์œผ๋ฉด ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ๋Š” ์›€์ง์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฏผ์ˆ˜์˜ ์„ธ๊ณ„์—์„œ๋Š” 0์ธต์ด ๊ฐ€์žฅ ์•„๋ž˜์ธต์ด๋ฉฐ ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ๋Š” ํ˜„์žฌ ๋ฏผ์ˆ˜๊ฐ€ ์žˆ๋Š” ์ธต์— ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ๋ฒ•์˜ ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ๋ฅผ ์›€์ง์ด๊ธฐ ์œ„ํ•ด์„œ ๋ฒ„ํŠผ ํ•œ ๋ฒˆ๋‹น ๋งˆ๋ฒ•์˜ ๋Œ ํ•œ ๊ฐœ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, 16์ธต์— ์žˆ๋Š” ๋ฏผ์ˆ˜๊ฐ€ 0์ธต์œผ๋กœ ๊ฐ€๋ ค๋ฉด -1์ด ์ ํžŒ ๋ฒ„ํŠผ์„ 6๋ฒˆ, -10์ด ์ ํžŒ ๋ฒ„ํŠผ์„ 1๋ฒˆ ๋ˆŒ๋Ÿฌ ๋งˆ๋ฒ•์˜ ๋Œ 7๊ฐœ๋ฅผ ์†Œ๋ชจํ•˜์—ฌ 0์ธต์œผ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, +1์ด ์ ํžŒ ๋ฒ„ํŠผ์„ 4๋ฒˆ, -10์ด ์ ํžŒ ๋ฒ„ํŠผ 2๋ฒˆ์„ ๋ˆ„๋ฅด๋ฉด ๋งˆ๋ฒ•์˜ ๋Œ 6๊ฐœ๋ฅผ ์†Œ๋ชจํ•˜์—ฌ 0์ธต์œผ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ๋ฒ•์˜ ๋Œ์„ ์•„๋ผ๊ธฐ ์œ„ํ•ด ๋ฏผ์ˆ˜๋Š” ํ•ญ์ƒ ์ตœ์†Œํ•œ์˜ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ ์ด๋™ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฏผ์ˆ˜๊ฐ€ ์–ด๋–ค ์ธต์—์„œ ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ๋ฅผ ํƒ€๊ณ  0์ธต์œผ๋กœ ๋‚ด๋ ค๊ฐ€๋Š”๋ฐ ํ•„์š”ํ•œ ๋งˆ๋ฒ•์˜ ๋Œ์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜๋ฅผ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ฏผ์ˆ˜์™€ ๋งˆ๋ฒ•์˜ ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ์ธต์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ storey ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, 0์ธต์œผ๋กœ ๊ฐ€๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋งˆ๋ฒ•์˜ ๋Œ์˜ ์ตœ์†Œ๊ฐ’์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”.

๐Ÿšจ์ œํ•œ ์‚ฌํ•ญ

  • 1 โ‰ค storey โ‰ค 100,000,000

๐Ÿ“„์ž…์ถœ๋ ฅ ์˜ˆ

storeyresult
166
255416

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

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

  • ๋ฌธ์ œ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

  • -1, +100์ด ์ ํžŒ ๋ฒ„ํŠผ์„ 4๋ฒˆ, +10์ด ์ ํžŒ ๋ฒ„ํŠผ์„ 5๋ฒˆ, -1000์ด ์ ํžŒ ๋ฒ„ํŠผ์„ 3๋ฒˆ ๋ˆ„๋ฅด๋ฉด 0์ธต์— ๋„์ฐฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ 16์„ return ํ•ฉ๋‹ˆ๋‹ค.

โœ๏ธํ’€์ด

์ ‘๊ทผ ๋ฐฉ๋ฒ•

๋‚˜๋Š” ๊ทœ์น™์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๋ฏผ์ˆ˜๊ฐ€ ํ˜„์žฌ 16์ธต์— ์žˆ์„ ๊ฒฝ์šฐ๋ฅผ ๋จผ์ € ์ƒ๊ฐํ•ด ๋ณด์•˜๋‹ค.๐Ÿค”
16์ธต์—์„œ 0์ธต์œผ๋กœ ๊ฐ€๋Š” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‘ ๊ฐ€์ง€๊ฐ€ ๋– ์˜ฌ๋ž๋‹ค.

  • 16์ธต์—์„œ 20์ธต๊นŒ์ง€ +1๋ฒ„ํŠผ์„ 4๋ฒˆ ๋ˆŒ๋Ÿฌ 20์ธต๊นŒ์ง€ ์˜ฌ๋ผ๊ฐ„ ๋‹ค์Œ, -10๋ฒ„ํŠผ์„ ๋‘ ๋ฒˆ ๋ˆŒ๋Ÿฌ 0์ธต์œผ๋กœ ๋‚ด๋ ค์˜ค๋Š” ๋ฐฉ๋ฒ•
  • 16์ธต์—์„œ 10์ธต๊นŒ์ง€ -1๋ฒ„ํŠผ์„ 6๋ฒˆ ๋ˆŒ๋Ÿฌ 10์ธต๊นŒ์ง€ ๋‚ด๋ ค๊ฐ„ ๋‹ค์Œ, -10๋ฒ„ํŠผ์„ ํ•œ ๋ฒˆ ๋ˆŒ๋Ÿฌ 0์ธต์œผ๋กœ ๋‚ด๋ ค์˜ค๋Š” ๋ฐฉ๋ฒ•

๋‘ ๋ฐฉ๋ฒ• ์ค‘, ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์—์„œ๋Š” ๋ฒ„ํŠผ์„ 6๋ฒˆ๋งŒ ๋ˆ„๋ฅด๋ฉด ๋˜๊ณ  ์ด๊ฒƒ์ด ๊ฒฐ๊ตญ ์ตœ์ ํ•ด์ด์ž ์ •๋‹ต์ด๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด, ์ด๋ฒˆ์—๋Š” ๋ฏผ์ˆ˜๊ฐ€ 14์ธต์—์„œ 0์ธต์œผ๋กœ ๊ฐ„๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.

  • 14์ธต์—์„œ 20์ธต๊นŒ์ง€ +1๋ฒ„ํŠผ์„ 6๋ฒˆ ๋ˆŒ๋Ÿฌ 20์ธต๊นŒ์ง€ ์˜ฌ๋ผ๊ฐ„ ๋‹ค์Œ, -10๋ฒ„ํŠผ์„ ๋‘ ๋ฒˆ ๋ˆŒ๋Ÿฌ 0์ธต์œผ๋กœ ๋‚ด๋ ค์˜ค๋Š” ๋ฐฉ๋ฒ•
  • 14์ธต์—์„œ 10์ธต๊นŒ์ง€ -1๋ฒ„ํŠผ์„ 4๋ฒˆ ๋ˆŒ๋Ÿฌ 10์ธต๊นŒ์ง€ ๋‚ด๋ ค๊ฐ„ ๋‹ค์Œ, -10๋ฒ„ํŠผ์„ ํ•œ ๋ฒˆ ๋ˆŒ๋Ÿฌ 0์ธต์œผ๋กœ ๋‚ด๋ ค์˜ค๋Š” ๋ฐฉ๋ฒ•

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‘ ๊ฐ€์ง€์˜ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ,
์ด ๊ฒฝ์šฐ์—๋Š” ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์ด ์ด 5๋ฒˆ์œผ๋กœ ๋” ํšจ์œจ์ ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, ์ผ์˜ ์ž๋ฆฌ๊ฐ€ 5๋ณด๋‹ค ํฌ๋ฉด storey๋ณด๋‹ค ํฌ๊ณ  ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด 10์˜ ๋ฐฐ์ˆ˜ ์ธต๊นŒ์ง€ +1๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์˜ฌ๋ผ๊ฐ€์„œ -10๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ 0์ธต๊นŒ์ง€ ๋‚ด๋ ค์˜ค๋Š” ๊ฒƒ์ด ์ œ์ผ ํšจ์œจ์ ์ด๊ณ ,
์ผ์˜ ์ž๋ฆฌ๊ฐ€ 5๋ณด๋‹ค ์ž‘์œผ๋ฉด storey๋ณด๋‹ค ์ž‘๊ณ  ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด 10์˜ ๋ฐฐ์ˆ˜ ์ธต๊นŒ์ง€ -1๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋‚ด๋ ค๊ฐ€์„œ -10๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ 0์ธต๊นŒ์ง€ ๋‚ด๋ ค์˜ค๋Š” ๊ฒƒ์ด ์ œ์ผ ํšจ์œจ์ ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๊ตฌํ˜„

ํ•ด๋‹น ๊ทœ์น™์„ ์ฝ”๋“œ๋กœ ์˜ฎ๊ฒจ๋ณด์•˜๋‹ค.

public static int solution(int storey) {
        int answer = 0;
        while (storey != 0) {
            while (storey % 10 != 0) {
                if (storey % 10 > 5) {
                    storey++;
                    answer++;
                }
                else {
                    storey--;
                    answer++;
                }
            }

            if (storey != 1) {
                storey = storey / 10;
            }
            else {
                continue;
            }
        }
    
        return answer;
}

storey๋ฅผ 10์œผ๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ์˜ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ์•„๋‹ˆ๋ฉด,
์ฆ‰, ์ผ์˜ ์ž๋ฆฌ๊ฐ€ 0์ด ์•„๋‹ ๋•Œ +1 ๋˜๋Š” -1๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ ์ด๋™์„ ํ•ด์•ผํ•œ๋‹ค.

์œ„์—์„œ ์ฐพ์•˜๋˜ ๊ทœ์น™๋Œ€๋กœ
์ผ์˜ ์ž๋ฆฌ๊ฐ€ 5๋ณด๋‹ค ํฌ๋ฉด, storey๋ณด๋‹ค ํฌ๊ณ  ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด 10์˜ ๋ฐฐ์ˆ˜ ์ธต๊นŒ์ง€ ์ด๋™ํ•˜๊ณ 
์ผ์˜ ์ž๋ฆฌ๊ฐ€ 5๋ณด๋‹ค ์ž‘์œผ๋ฉด, storey๋ณด๋‹ค ์ž‘๊ณ  ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด 10์˜ ๋ฐฐ์ˆ˜ ์ธต๊นŒ์ง€ ์ด๋™ํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋„์ฐฉํ•œ ์ธต์ด 1์ธต์ด ์•„๋‹ˆ๋ฉด storey๋ฅผ 10์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ž๋ฆฟ์ˆ˜๋ฅผ ํ•˜๋‚˜์”ฉ ๋‹น๊ฒจ์ฃผ๊ณ  0์ธต์ด ๋  ๋•Œ๊นŒ์ง€ ์œ„์˜ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋„๋ก ํ•˜์˜€๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์—์„œ๋Š” ํ†ต๊ณผํ–ˆ์ง€๋งŒ, 3๊ฐœ์˜ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ์˜ค๋‹ต์„ ์ถœ๋ ฅํ–ˆ๋‹ค.

๋ฌธ์ œ ์›์ธ

์•Œ๊ณ  ๋ณด๋‹ˆ, ์ž…๋ ฅ๊ฐ’์ด 75์ผ ๋•Œ, ๊ธฐ๋Œ€๊ฐ’๊ณผ ๊ฒฐ๊ณผ๊ฐ’์ด ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋‚ด๊ฐ€ ๊ตฌํ˜„ํ•œ ๋กœ์ง๋Œ€๋กœ๋ผ๋ฉด, storey๋กœ 75๊ฐ€ ๋“ค์–ด์™”์„ ๋•Œ, ์•„๋ž˜์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์น˜๊ฒŒ ๋œ๋‹ค.

  • -1๋ฒ„ํŠผ ๋‹ค์„ฏ ๋ฒˆ (75์ธต โ†’ 70์ธต)
  • -10๋ฒ„ํŠผ ์ผ๊ณฑ ๋ฒˆ (70์ธต โ†’ 0์ธต)

์ด๋ ‡๊ฒŒ ์ด 12๋ฒˆ์˜ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์•ผ 0์— ๋„๋‹ฌํ•œ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ด๋ณด๋‹ค ๋” ์ตœ์ ์˜ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  • +1๋ฒ„ํŠผ ๋‹ค์„ฏ ๋ฒˆ (75์ธต โ†’ 80์ธต)
  • +10๋ฒ„ํŠผ ๋‘ ๋ฒˆ (80์ธต โ†’ 100์ธต)
  • -100๋ฒ„ํŠผ ํ•œ ๋ฒˆ (100์ธต โ†’ 0์ธต)

์ด ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์ด 8๋ฒˆ์˜ ๋ฒ„ํŠผ๋งŒ์œผ๋กœ 0์ธต์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, ์ผ์˜ ์ž๋ฆฟ์ˆ˜๊ฐ€ 5๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ, ํ˜น์€ ์ž‘์€ ๊ฒฝ์šฐ์—๋Š” ๊ธฐ์กด์˜ ๋งค์ปค๋‹ˆ์ฆ˜์„ ๋”ฐ๋ผ๊ฐ€๋„๋ก ๋‘๋ฉด ๋˜๋Š”๋ฐ,
์ผ์˜ ์ž๋ฆฟ์ˆ˜๊ฐ€ 5์ธ ๊ฒฝ์šฐ์—๋Š” ์‹ญ์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ํ™•์ธํ•ด 5๋ณด๋‹ค ํฌ๋‹ค๋ฉด, +1๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์œ„๋กœ ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

๐Ÿ‘พ์ตœ์ข… ์ฝ”๋“œ

class Solution {
    public int solution(int storey) {
        int answer = 0;
        while (storey != 0) {
            while (storey % 10 != 0) {
                if (storey % 10 > 5 || (storey % 10 == 5 && storey % 100 > 50)) {
                    storey++;
                    answer++;
                }
                else {
                    storey--;
                    answer++;
                }
            }


            if (storey != 1) {
                storey = storey / 10;
            }
            else {
                continue;
            }
        }
        
        
        return answer;
    }
}

๋”ฐ๋ผ์„œ, +1๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์กฐ๊ฑด์— ์ผ์˜ ์ž๋ฆฟ์ˆ˜๊ฐ€ 5์ด๊ณ  ์‹ญ์˜ ์ž๋ฆฟ์ˆ˜๊ฐ€ 5๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ๋ฅผ ์ถ”๊ฐ€ํ•ด์คŒ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.


๐Ÿ”—๋ฌธ์ œ ๋งํฌ
๐Ÿ’ปRepository

profile
ํ›ˆ์‹น์˜ ๊ฐœ๋ฐœ์—ฌํ–‰
post-custom-banner

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

comment-user-thumbnail
2024๋…„ 8์›” 13์ผ

๐Ÿง™โ€โ™‚๏ธ๐Ÿง™โ€โ™€๏ธ

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ
comment-user-thumbnail
2024๋…„ 8์›” 13์ผ

์˜์—ญ ์ „๊ฐœ....!

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ