관리 메뉴

Binary Journey

[ν…Œμ½”ν…Œμ½”1.5 1-06] λ‹‰λ„€μž„ κ·œμΉ™ λ³Έλ¬Έ

Algorithm/ν…Œμ½”ν…Œμ½”1.5(2025.01)

[ν…Œμ½”ν…Œμ½”1.5 1-06] λ‹‰λ„€μž„ κ·œμΉ™

binaryJournalist 2025. 1. 12. 18:24
λ°˜μ‘ν˜•
πŸ’‘ν…Œμ½”ν…Œμ½” μ‹œμ¦Œ 1.5 1회 λͺ¨μž„ off-site 문제 ν’€μ΄μž…λ‹ˆλ‹€. (2025.01.12)

 

문제

 

좜처: ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ - PCCE 기좜문제 08. λ‹‰λ„€μž„ κ·œμΉ™

 

λ‚΄μš©

 

온라인 μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•˜κΈ° μœ„ν•΄μ„œ λ‹‰λ„€μž„μ΄ ν•„μš”ν•©λ‹ˆλ‹€. μ΄λ•Œ λ‹‰λ„€μž„μ΄ 될 수 μžˆλŠ” 쑰건은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • λ‹‰λ„€μž„μ˜ 길이가 4자 이상 8자 μ΄ν•˜μ—¬μ•Όν•©λ‹ˆλ‹€.
  • λ‹‰λ„€μž„μ—λŠ” μ†Œλ¬Έμž lκ³Όw, λŒ€λ¬Έμž O와 Wλ₯Ό μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
  • μ΄μ™Έμ˜ μ˜μ–΄ λŒ€μ†Œλ¬Έμžμ™€ μˆ«μžλŠ” λͺ¨λ‘ μ‚¬μš©μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

주어진 solution ν•¨μˆ˜λŠ” μ‚¬μš©ν•  수 μ—†λŠ” λ‹‰λ„€μž„ nickname을 λ°›μ•„ μ‚¬μš©ν•  수 μžˆλŠ” λ‹‰λ„€μž„μœΌλ‘œ λ°”κΏ”μ£ΌλŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. μ΄λ•Œ λ‹‰λ„€μž„μ„ λ³€κ²½ν•˜λŠ” κ·œμΉ™μ€ λ‹€μŒκ³Ό κ°™μœΌλ©° 첫 번째 κ·œμΉ™λΆ€ν„° μˆœμ„œλŒ€λ‘œ μ μš©ν•©λ‹ˆλ‹€.

  1. μ†Œλ¬Έμž l을 λŒ€λ¬Έμž I둜 λ³€κ²½ν•©λ‹ˆλ‹€.
  2. μ†Œλ¬Έμž wλ₯Ό 두 개의 μ†Œλ¬Έμž v, 즉 vv둜 λ³€κ²½ν•©λ‹ˆλ‹€.
  3. λŒ€λ¬Έμž Wλ₯Ό 두 개의 λŒ€λ¬Έμž V, 즉 VV둜 λ³€κ²½ν•©λ‹ˆλ‹€.
  4. λŒ€λ¬Έμž Oλ₯Ό 숫자 0으둜 λ³€κ²½ν•©λ‹ˆλ‹€.
  5. μˆ˜μ •λœ λ‹‰λ„€μž„μ˜ 길이가 4 미만일 경우 뒀에 μ†Œλ¬Έμž oλ₯Ό 길이가 4κ°€ λ λ•ŒκΉŒμ§€ μ΄μ–΄λΆ™μž…λ‹ˆλ‹€.
  6. μˆ˜μ •λœ λ‹‰λ„€μž„μ˜ 길이가 8보닀 클 경우 8번째 λ¬ΈμžκΉŒμ§€λ§Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

주어진 solution ν•¨μˆ˜μ—λŠ” μœ„μ˜ κ·œμΉ™ 쀑 μ˜¬λ°”λ₯΄κ²Œ μ μš©λ˜μ§€ μ•ŠλŠ” 것이 μžˆμŠ΅λ‹ˆλ‹€. solution ν•¨μˆ˜κ°€ μ˜¬λ°”λ₯΄κ²Œ μž‘λ™ν•˜λ„λ‘ ν•œ 쀄을 μˆ˜μ •ν•΄μ£Όμ„Έμš”.

 

 

κΈ°λ‘ν•˜κΈ°

πŸ’‘ μ–΄λ””κΉŒμ§€ μƒκ°ν•΄λ΄€λŠ”μ§€ λ‹¨κ³„μ μœΌλ‘œ κΈ°λ‘ν•΄λ΄…λ‹ˆλ‹€.

 

풀이

풀이 μ‹œκ°„

 

μ‹œμž‘ μ‹œκ° μ’…λ£Œ μ‹œκ° 총 μ†Œμš” μ‹œκ°„
13:24 13:27 3λΆ„

 

문제 뢄석

 

μ œμ•½ 사항 νŒŒμ•… & ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ μž‘μ„±

 

  • 1 ≤ nickname의 길이 ≤ 10
  • nickname은 μ˜μ–΄ λŒ€μ†Œλ¬Έμžμ™€ 숫자둜만 μ΄λ£¨μ–΄μ ΈμžˆμŠ΅λ‹ˆλ‹€.

 

μž…λ ₯κ°’ 뢄석

πŸ’‘ μž…λ ₯값을 λΆ„μ„ν•˜λ©΄ λ¬Έμ œμ—μ„œ μš”κ΅¬ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ˜ μ‹œκ°„ λ³΅μž‘λ„λ₯Ό κ°„μ ‘μ μœΌλ‘œ νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

nickname result
"WORLDworld" "VV0RLDvv"
"GO" "G0oo"

 

μ˜μ‚¬ μ½”λ“œ μž‘μ„±

πŸ’‘ μ˜μ‚¬ μ½”λ“œλŠ” λ™μž‘ μ€‘μ‹¬μœΌλ‘œ μž‘μ„±ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.

πŸ’‘ μ˜μ‚¬ μ½”λ“œλŠ” 문제 ν•΄κ²° μˆœμ„œλ‘œ μž‘μ„±ν•©λ‹ˆλ‹€.

πŸ’‘ μ˜μ‚¬ μ½”λ“œλ₯Ό μΆ©λΆ„νžˆ ν…ŒμŠ€νŠΈν•΄λ΄…λ‹ˆλ‹€.

 

 

(κΈ°μ‘΄ κ΅¬ν˜„λœ μ½”λ“œ)

class Solution {
    public String solution(String nickname) {
        String answer = "";
        for(int i=0; i<nickname.length(); i++){
            if(nickname.charAt(i) == 'l'){
                answer += "I";
            }
            else if(nickname.charAt(i) == 'w'){
                answer += "vv";
            }
            else if(nickname.charAt(i) == 'W'){
                answer += "VV";
            }
            else if(nickname.charAt(i) == 'O'){
                answer += "0";
            }
            else{
                answer += nickname.charAt(i);
            }
        }
        if(answer.length() < 3){
            answer += "o";
        }
        if(answer.length() > 8){
            answer = answer.substring(0, 8);
        }
        return answer;
    }
}

 

 

κ΅¬ν˜„

repeat μ‚¬μš©

class Solution {
    public String solution(String nickname) {
        String answer = "";
        for(int i=0; i<nickname.length(); i++){
            if(nickname.charAt(i) == 'l'){
                answer += "I";
            }
            else if(nickname.charAt(i) == 'w'){
                answer += "vv";
            }
            else if(nickname.charAt(i) == 'W'){
                answer += "VV";
            }
            else if(nickname.charAt(i) == 'O'){
                answer += "0";
            }
            else{
                answer += nickname.charAt(i);
            }
        }
        if(answer.length() < 3){
            answer += "o".repeat(4 - answer.length());
        }
        if(answer.length() > 8){
            answer = answer.substring(0, 8);
        }
        return answer;
    }
}

 

 

forλ¬Έ μ‚¬μš©

class Solution {
    public String solution(String nickname) {
        String answer = "";
        for(int i=0; i<nickname.length(); i++){
            if(nickname.charAt(i) == 'l'){
                answer += "I";
            }
            else if(nickname.charAt(i) == 'w'){
                answer += "vv";
            }
            else if(nickname.charAt(i) == 'W'){
                answer += "VV";
            }
            else if(nickname.charAt(i) == 'O'){
                answer += "0";
            }
            else{
                answer += nickname.charAt(i);
            }
        }
        for (int i = answer.length(); i < 4; i++){
            answer += "o";
        }
        if(answer.length() > 8){
            answer = answer.substring(0, 8);
        }
        return answer;
    }
}

 

 

λ³΅κΈ°ν•˜κΈ°

λ‹΅μ•ˆκ³Ό λ‚˜μ˜ 풀이λ₯Ό λΉ„κ΅ν•΄λ³΄μ„Έμš”

  • 첫 쑰건문이 answer.length() < 3둜 λ˜μ–΄ μžˆμ—ˆκΈ° λ•Œλ¬Έμ— repeat 보단 forλ¬Έ μ‚¬μš©μ΄ 더 λ‚˜μ•„ 보인닀.
λ°˜μ‘ν˜•