Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Gargbae Collector
- 조상 노드
- 자식 노드
- 자바
- 해시 테이블
- 자료구조
- 객체 배열
- binary queue
- 큐
- ListIterator
- 트리 높이
- Double형 배열
- Queue
- Linear Probing
- Open-Addressing
- array
- 이진 큐
- 직접 주소 개방
- 단말노드
- singly linked list
- 향상된 for문
- Quadratic Probing
- 부모 노드
- 배열
- 선형 조사법
- 루트노드
- 이차 조사법
- java
- 노드 레벨
- Double Hasing
Archives
- Today
- Total
영운's 블로그
[프로그래머스 Lv1] 숫자 문자열과 영단어(Java) 본문
실제 문제: 코딩 테스트 연습 - 숫자 문자열과 영단어 | 프로그래머스 (programmers.co.kr)
코딩테스트 연습 - 숫자 문자열과 영단어
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자
programmers.co.kr
영어와 숫자 혼합으로 이루어진 문자열을 정수로 변환하는 문제이다.
영어 -> 숫자 변환이기에 enum을 활용하면 편할 것 같았다.
보통 enum은 ZERO, ONE, TWO..처럼 대문자를 활용하지만 input으로 주어지는 영어가 소문자로 제한되어 있어 소문자로 enum을 선언하였다.
풀며 알게된 점
1) enum의 values() 메서드를 사용하면 for반복문을 활용할 수 있다.
enum의 values() 메서드는 enum의 원소들을 반환한다.
2) String의 replaceAll()메서드는 문자열 자체를 바꾸지 않고 바뀐 문자열을 반환한다.
따라서 문자열을 바꾸고 싶으면 기존 변수에 다시 선언해 줘야한다.
public class Solution {
enum Number{
zero, one, two, three, four, five, six, seven, eight, nine
}
public int solution(String s) {
for(Number i : Number.values())
s = s.replaceAll(i.name(), String.valueOf(i.ordinal()));
int answer = Integer.parseInt(s);
return answer;
}
public static void main(String[] args) {
String test1 = "one4seveneight";
String test2 = "23four5six7";
String test3 = "2three45sixseven";
String test4 = "123";
Solution sl = new Solution();
System.out.println(sl.solution(test1));
System.out.println(sl.solution(test2));
System.out.println(sl.solution(test3));
System.out.println(sl.solution(test4));
}
}
'백준 , 프로그래머스 풀이 > 프로그래머스 Lv1 (Java)' 카테고리의 다른 글
[프로그래머스Lv1] 실패율 (Java) (0) | 2022.04.13 |
---|---|
[프로그래머스Lv1] 신규 아이디 추천 (Java) (0) | 2022.04.01 |
[프로그래머스 Lv1] 로또의 최고 순위와 최저 순위(Java) (0) | 2022.03.29 |
Comments