KDLiam

[Programmers ์ฝ”๋”ฉ ๊ธฐ์ดˆ ํŠธ๋ ˆ์ด๋‹ : Java] ์ˆ˜ ์กฐ์ž‘ํ•˜๊ธฐ 1 ๋ณธ๋ฌธ

Problems(Java)/Programmers

[Programmers ์ฝ”๋”ฉ ๊ธฐ์ดˆ ํŠธ๋ ˆ์ด๋‹ : Java] ์ˆ˜ ์กฐ์ž‘ํ•˜๊ธฐ 1

KDLiam 2025. 10. 13. 11:40

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

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 181926 - ๋ฌธ์ž์—ด ๋ช…๋ น์–ด์— ๋”ฐ๋ผ ์ˆ˜ ๊ณ„์‚ฐ


๐Ÿ’ก ๋ฌธ์ œ ์š”์•ฝ

  • ์ •์ˆ˜ n๊ณผ ๋ฌธ์ž์—ด control์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
  • control์˜ ๊ฐ ๋ฌธ์ž๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌ:
    • 'w' → +1
    • 's' → -1
    • 'd' → +10
    • 'a' → -10
  • ์ตœ์ข… ์ˆซ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ:
n = 5, control = "wsdaw"
๊ณ„์‚ฐ: 5 → 6(w) → 5(s) → 15(d) → 5(a) → 6(w)
๊ฒฐ๊ณผ = 6


๐Ÿงฉ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

 
class Solution {
    public int solution(int n, String control) {
        
        for(char command: control.toCharArray()) {
            switch(command) {
                case 'w': n += 1; break;
                case 's': n -= 1; break;
                case 'd': n += 10; break;
                case 'a': n -= 10; break;
            }
        }
        
        return n;
    }
}

โœ… ์ฝ”๋“œ ์„ค๋ช…

  1. ๋ฌธ์ž์—ด → char ๋ฐฐ์—ด ๋ณ€ํ™˜
    • control.toCharArray()๋ฅผ ์‚ฌ์šฉํ•ด ๋ฌธ์ž์—ด์˜ ๊ฐ ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ์ˆœํšŒ
  2. switch๋ฌธ ํ™œ์šฉ
    • ๊ฐ ๋ช…๋ น์–ด์— ๋งž๊ฒŒ n์„ ์ฆ๊ฐ€/๊ฐ์†Œ์‹œํ‚ด
  3. ์ตœ์ข… n ๋ฐ˜ํ™˜

๐Ÿ’ก ์ฃผ์˜

  • switch์—์„œ ๊ฐ case ๋’ค์—๋Š” break๋ฅผ ๋ฐ˜๋“œ์‹œ ์จ์•ผ ํ•จ
  • ๋ฌธ์ž์—ด์„ ๋ฐ”๋กœ ๋น„๊ตํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์•ˆ ๋˜๊ณ , char ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•จ

โšก ์„ฑ๋Šฅ ์ธก๋ฉด

ํ•ญ๋ชฉ๋‚ด์šฉ
์‹œ๊ฐ„ ๋ณต์žก๋„ O(L) — control ๊ธธ์ด๋งŒํผ ๋ฐ˜๋ณต
๊ณต๊ฐ„ ๋ณต์žก๋„ O(L) — char ๋ฐฐ์—ด ๋ณ€ํ™˜์œผ๋กœ L๋งŒํผ ๊ณต๊ฐ„ ์‚ฌ์šฉ
์„ฑ๋Šฅ ํ‰๊ฐ€ โœ… ๋งค์šฐ ํšจ์œจ์ , L์ด ํฌ์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฌธ์ œ ์—†์Œ

๐Ÿ“ ์ •๋ฆฌ

  • ๋ฌธ์ž์—ด ๋ช…๋ น์–ด๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ .toCharArray() ํ™œ์šฉ
  • switch๋ฌธ์œผ๋กœ ๋ช…๋ น์–ด ๋ณ„ ์ฒ˜๋ฆฌ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ๊ตฌํ˜„
  • ์ฝ”๋“œ๊ฐ€ ์ง๊ด€์ ์ด๋ฉฐ, ์‹œ๊ฐ„/๊ณต๊ฐ„ ํšจ์œจ ๋ชจ๋‘ ์ถฉ๋ถ„ํ•จ