[프로그래머스] 숫자 문자열과 영단어

Lil_Young·2025년 11월 4일

알고리즘 문제

목록 보기
22/23
post-thumbnail

[풀이 코드]

import java.util.*;
import java.io.*;

class Solution {
    static Map<Integer, String> map;
    public int solution(String s) {
        String answer = "";
		map = new HashMap<Integer, String>();
		map.put(0, "zero");
		map.put(1, "one");
		map.put(2, "two");
		map.put(3, "three");
		map.put(4, "four");
		map.put(5, "five");
		map.put(6, "six");
		map.put(7, "seven");
		map.put(8, "eight");
		map.put(9, "nine");
		
		String str = "";
		for (int i = 0; i < s.length(); i++) {
			// 숫자일 때
			if(Character.isDigit(s.charAt(i))) {
				answer += s.substring(i, i+1);
			}else {
				str+=s.charAt(i);
				
				if(map.containsValue(str)) {
					for(Map.Entry<Integer, String> a : map.entrySet()) {
						if(a.getValue().equals(str)) {
							answer += a.getKey();
						}
					}
					str = "";
				}
				
			}
		}
		int num = Integer.parseInt(answer);
		return num;
    }
}

최근에 알고리즘 문제를 풀지 않아가지고, 알고리즘 접근 방법과 자바에서 사용하는 주요 메서드들에 대해 기억하는데 굉장히 오래걸렸다. ㅠㅠ
결국 이런 쉬운 문제도 30분이 걸리다니,, 오늘부터 다시 1일 1코테를 시작해보겠다.

https://school.programmers.co.kr/learn/courses/30/lessons/81301?language=java

0개의 댓글