-
코딩테스트 연습 - 숫자 문자열과 영단어
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자
programmers.co.kr
문제
해당 문제는 문자열이 주어졌을 때 영어 단어로 표시된 부분을 숫자로 바꿔서 최종 숫자를 출력하는 문제다.
조건
- 1 ≤ s의 길이 ≤ 50
- s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다.
- return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다.
풀이
해당 문제는 map을 이용해서 해결했다. 먼저 map에 영어 단어를 키값으로 두고 숫자를 벨류로하여 0~9 값을 모두 넣어주고 이후 입력된 문자열을 char형 배열로 변경하여 하나씩 비교하면서 숫자면 최종 숫자에 추가해주고 문자면 단어에 추가하여 단어가 map에 있는지 체크하고 있으면 벨류를 반환하고 초기화하는 방식으로 해결했다.
코드
import java.util.HashMap; import java.util.Map; class Solution { public static int solution(String s) { int answer = 0; char[] c = s.toCharArray(); String str = "", word = ""; Map<String, Integer> map = new HashMap<>(); map.put("zero", 0); map.put("one", 1); map.put("two", 2); map.put("three", 3); map.put("four", 4); map.put("five", 5); map.put("six", 6); map.put("seven", 7); map.put("eight", 8); map.put("nine", 9); for (int i = 0; i < c.length; i++) { if(c[i] >= '0' && c[i] <= '9') str+= c[i]; else { word += c[i]; if(map.get(word) != null) { str+=map.get(word); word = ""; } } } answer = Integer.parseInt(str); return answer; } }
GitHub - JUNGSOONIL/JAVA: JAVA 소스 코드
JAVA 소스 코드. Contribute to JUNGSOONIL/JAVA development by creating an account on GitHub.
github.com
728x90'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 경주로 건설 JAVA (0) 2022.05.10 프로그래머스 키패드 누르기 JAVA (0) 2022.05.09 프로그래머스 없는 숫자 더하기 JAVA (0) 2022.05.05 프로그래머스 신규 아이디 추천 JAVA (0) 2022.05.04 프로그래머스 타겟 넘버 JAVA (0) 2022.05.03 댓글