Seren dev's blog
article thumbnail
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

enum 클래스 NumStr를 생성하여 대응되는 영단어와 숫자를 저장하고,

replace() 메서드를 사용하여 영단어 NumStr.str부분 숫자 NumStr.num으로 치환한다.

 

코드

import java.util.*;

class Solution {
    static public enum NumStr {
        ZERO("zero", 0),
        ONE("one", 1),
        TWO("two", 2),
        THREE("three", 3),
        FOUR("four", 4),
        FIVE("five", 5),
        SIX("six", 6),
        SEVEN("seven", 7),
        EIGHT("eight", 8),
        NINE("nine", 9);
        
        String str;
        int num;
        
        NumStr(String str, int num) {
            this.str = str;
            this.num = num;
        }
        
    }
    
    public int solution(String s) {
        for(NumStr numStr : NumStr.values()) {
            s = s.replace(numStr.str, String.valueOf(numStr.num));
        }
            
        return Integer.parseInt(s);
    }
}

 


다른 풀이 - 2

영단어 문자열만 배열로 생성하여 for문을 통해 문자열 s의 영단어 부분을 숫자로 치환한다.

import java.util.*;

class Solution {
    
    public int solution(String s) {
        String[] alphabets = {"zero","one","two","three","four","five","six","seven","eight","nine"};
        for(int i = 0; i < 10; i++) {
            s = s.replace(alphabets[i], String.valueOf(i));
        }
            
        return Integer.parseInt(s);
    }
}

 

 

1번째 풀이
2번째 풀이

728x90
profile

Seren dev's blog

@Seren dev

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!