๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด(Java)

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์ด์ƒํ•œ ๋ฌธ์ž ๋งŒ๋“ค๊ธฐ

by carrot0911 2024. 11. 26.

๋ฌธ์ œ ์„ค๋ช…

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

 

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

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

programmers.co.kr

๋ฌธ์ž์—ด s๋Š” ํ•œ ๊ฐœ ์ด์ƒ์˜ ๋‹จ์–ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ์–ด๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ณต๋ฐฑ๋ฌธ์ž๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ์–ด์˜ ์ง์ˆ˜๋ฒˆ์งธ ์•ŒํŒŒ๋ฒณ์€ ๋Œ€๋ฌธ์ž๋กœ, ํ™€์ˆ˜๋ฒˆ์งธ ์•ŒํŒŒ๋ฒณ์€ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พผ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • ๋ฌธ์ž์—ด ์ „์ฒด์˜ ์ง/ํ™€์ˆ˜ ์ธ๋ฑ์Šค๊ฐ€ ์•„๋‹ˆ๋ผ, ๋‹จ์–ด(๊ณต๋ฐฑ์„ ๊ธฐ์ค€) ๋ณ„๋กœ ์ง/ํ™€์ˆ˜ ์ธ๋ฑ์Šค๋ฅผ ํŒ๋‹จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฒซ ๋ฒˆ์งธ ๊ธ€์ž๋Š” 0๋ฒˆ์งธ ์ธ๋ฑ์Šค๋กœ ๋ณด์•„ ์ง์ˆ˜๋ฒˆ์งธ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

s return
"try hello world" "TrY HeLlo WoRlD"

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

  • "try hello world"๋Š” ์„ธ ๋‹จ์–ด "try", "hello", "world"๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ์–ด์˜ ์ง์ˆ˜๋ฒˆ์งธ ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ, ํ™€์ˆ˜๋ฒˆ์งธ ๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พธ๋ฉด "TrY", "HeLlO", "WoRlD"์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ "TrY HeLlO WoRlD"๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

 

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

class Solution {
    public String solution(String s) {
        String answer = "";
        
        String[] str = s.split("");
        
        int idx = 0;
        for (int i = 0; i < str.length; i++) {
            if (str[i].equals(" ")) {
                idx = 0;
            } else if (idx % 2 == 0) {
                str[i] = str[i].toUpperCase();
                idx++;
            } else if (idx % 2 != 0) {
                str[i] = str[i].toLowerCase();
                idx++;
            }
            answer += str[i];
        }
    
        return answer;
    }
}

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

  • String[ ] str = s.split("") : ๋ฌธ์ž์—ด s๋ฅผ ๋นˆ ๋ฌธ์ž์—ด("")์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ ๋ฌธ์ž๋ฅผ ์š”์†Œ๋กœ ๊ฐ€์ง€๋Š” ๋ฌธ์ž์—ด ๋ฐฐ์—ด str์— ์ €์žฅํ•œ๋‹ค.
  • int idx = 0 : ๋ณ€์ˆ˜ idx๋ฅผ ์ƒ์„ฑํ•˜๊ณ  0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ํ˜„์žฌ ๋ฌธ์ž์˜ ์œ„์น˜๊ฐ€ ํ™€์ˆ˜์ธ์ง€ ์ง์ˆ˜์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.
  • for (int i = 0; i < str.length; i++) { } : for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ i๊ฐ€ 0๋ถ€ํ„ฐ str.length - 1๊นŒ์ง€ ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ˆœํšŒํ•œ๋‹ค.
    • if (str[i].equals(" ")) { idx = 0 } : if๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐ์—ด str์˜ i๋ฒˆ์งธ ์š”์†Œ๊ฐ€ ๊ณต๋ฐฑ(" ")์ธ ๊ฒฝ์šฐ, ๋ณ€์ˆ˜ idx ๊ฐ’์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ๊ณต๋ฐฑ ์ดํ›„์˜ ๋ฌธ์ž๋ฅผ ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ง์ˆ˜๋กœ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.
    • else if (idx % 2 == 0) { }  : idx๊ฐ€ 2๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง„๋‹ค๋ฉด, ์ฆ‰ ์ง์ˆ˜ ์ธ๋ฑ์Šค์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•œ๋‹ค.
      • str[i] = str[i].toLowerCase( ) : str์˜ i๋ฒˆ์งธ ๋ฌธ์ž๋ฅผ ์†Œ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.
      • idx++ : idx ๊ฐ’์„ 1 ์ฆ๊ฐ€ํ•œ๋‹ค.
    • else if (idx % 2 != 0 ) { } : idx๊ฐ€ 2๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š์œผ๋ฉด, ์ฆ‰ ํ™€์ˆ˜ ์ธ๋ฑ์Šค์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•œ๋‹ค.
      • str[i] = str[i].toUpperCase( ) : str์˜ i๋ฒˆ์งธ ๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.
      • idx++ : idx ๊ฐ’์„ 1 ์ฆ๊ฐ€ํ•œ๋‹ค.
    • answer += str[i] : ๋ณ€์ˆ˜ answer์— str์˜ i๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ด์–ด ๋ถ™์ธ๋‹ค.