알고리즘
[99클럽 1기 4일차] 프로그래머스 > 숫자 문자열과 영단어
산도리
2024. 3. 30. 23:25
본 문제는 자바 언어를 사용하여 풀었습니다
** 블로그에는 해당 문제 풀이만 올리도록 하겠습니다~ 문제 내용은 아래를 참고해주세요! **

문제
https://school.programmers.co.kr/learn/courses/30/lessons/81301
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
처음 문제를 풀 때는 정답이고 직관적이었지만 풀면서도 이렇게(?) 풀면 안되겠다 싶었다
class Solution {
public int solution(String s) {
String t="";
int answer ;
while (s.length() >= 1){
if (s.charAt(0)=='z'){
t += '0' ;
s=s.substring(4);
} else if (s.charAt(0)=='o') {
t += '1';
s=s.substring(3);
} else if (s.charAt(0)=='t') {
if (s.charAt(0+1)=='w'){
t += '2';
s=s.substring(3);
}else {
t += '3';
s=s.substring(5);
}
}else if (s.charAt(0)=='f') {
if (s.charAt(0+1)=='o'){
t += '4';
s=s.substring(4);
}else {
t += '5';
s=s.substring(4);
}
}else if (s.charAt(0)=='s') {
if (s.charAt(0+1)=='i'){
t += '6';
s=s.substring(3);
}else {
t += '7';
s=s.substring(5);
}
}else if (s.charAt(0)=='e') {
t += '8';
s=s.substring(5);
}else if (s.charAt(0)=='n') {
t += '9';
s=s.substring(4);
}else{
t += s.charAt(0);
s = s.substring(1);
}
}
try {
answer = Integer.parseInt(t);
}catch (NumberFormatException x){
x.printStackTrace();
answer = 0;
}
return answer;
};
}
풀이는 입력된 영단어의 첫 글자에 따라 if문으로 문자열 t에 값을 채워주었다 ex) zero 일 경우 첫 글자가 z이면 t+=0 ...
이 후에 코드를 간결히 수정해 봐야겠다.... 일단 정답이니