KDLiam

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

Problems(Java)/Programmers

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

KDLiam 2025. 10. 1. 14:11

๐Ÿ” ๋ฌธ์ž์—ด ๋ฐ˜๋ณต ์ถœ๋ ฅ (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 181940๋ฒˆ)

๐Ÿ“Œ ๋ฌธ์ œ ๋งํฌ: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 181940 - ๋ฌธ์ž์—ด ๋ฐ˜๋ณตํ•ด์„œ ์ถœ๋ ฅํ•˜๊ธฐ


๐Ÿ“– ๋ฌธ์ œ ์„ค๋ช…

๋ฌธ์ž์—ด my_string์„ ์ž…๋ ฅ๋ฐ›์•„, ์ด๋ฅผ k๋ฒˆ ๋ฐ˜๋ณตํ•ด์„œ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
์˜ˆ: "abc"์™€ k = 3์ด ์ฃผ์–ด์ง€๋ฉด → "abcabcabc"


โœจ ์ฒซ ๋ฒˆ์งธ ํ’€์ด (for๋ฌธ + StringBuilder)

 
class Solution {
    public String solution(String my_string, int k) {
        StringBuilder answer = new StringBuilder();

        for(int i=0;i<k;i++) { answer.append(my_string); };
        
        return answer.toString();
    }
}

๐Ÿ’ก ํ’€์ด ์•„์ด๋””์–ด

  • ๋ฐ˜๋ณต๋ฌธ(for)์„ ํ†ตํ•ด k๋ฒˆ ๋ฌธ์ž์—ด์„ ์ด์–ด๋ถ™์ž„
  • StringBuilder๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ ์ €ํ•˜ ์—†์ด ๋ฌธ์ž์—ด ์ƒ์„ฑ

๐Ÿ‘‰ ๊ฐ€๋…์„ฑ๋„ ๊ดœ์ฐฎ๊ณ , ์ „ํ†ต์ ์œผ๋กœ ์ž์ฃผ ์“ฐ๋Š” ๋ฐฉ์‹


โœจ ๋‘ ๋ฒˆ์งธ ํ’€์ด (repeat ๋ฉ”์„œ๋“œ ํ™œ์šฉ)

 
class Solution {
    public String solution(String my_string, int k) {
        return my_string.repeat(k);
    }
}

๐Ÿ’ก ๊ฐœ์„  ํฌ์ธํŠธ

  • Java 11๋ถ€ํ„ฐ ๋„์ž…๋œ String.repeat(int count) ๋ฉ”์„œ๋“œ ํ™œ์šฉ
  • ํ•œ ์ค„๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ → ๊ฐ€๋…์„ฑ ↑

๐Ÿ‘‰ ํ›จ์”ฌ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ง๊ด€์ 


๐Ÿ“Š ๋‘ ๊ฐ€์ง€ ํ’€์ด ๋น„๊ต

๋ฐฉ์‹์ฝ”๋“œ ๊ธธ์ด๊ฐ€๋…์„ฑ์„ฑ๋Šฅ
for๋ฌธ + StringBuilder ๋น„๊ต์  ๊น€ ์ง๊ด€์  O(N·k)
String.repeat(k) (Java 11↑) ๋งค์šฐ ์งง์Œ ๊ฐ€์žฅ ๊น”๋” O(N·k)

๐Ÿ”‘ ์„ฑ๋Šฅ์€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜ ๋ฉด์—์„œ๋Š” repeat ๋ฉ”์„œ๋“œ๊ฐ€ ๋” ์šฐ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.