-
프로그래머스 (Level 1) - 숫자 문자열과 영단어Coding Test/Coding Test 문제 풀이 2021. 12. 24. 11:19
문제 설명
풀이
문제의 요구사항은 입력받은 문자열 내 영단어를 숫자로 변경시켜주는 것이다.
String[] numbers = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; String[] alphabets = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
우선, 영단어와 숫자를 문자열 형태의 배열로 만든다.
for (int i = 0; i < 10; i++) { s = s.replace(alphabets[i], numbers[i]); }
for 문을 사용해서 numbers 배열과 alphabets 배열의 첫 번째 원소부터 하나씩 접근을 한다. 그 후 replace() 함수를 이용해서 영단어에 해당하는 숫자로 변경시켜주는 작업을 진행한다.
전체 소스코드
import java.io.*; import java.util.*; public class Main { public int solution(String s) { String[] numbers = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; String[] alphabets = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" }; for (int i = 0; i < 10; i++) { s = s.replace(alphabets[i], numbers[i]); } return Integer.parseInt(s); } }
replace( )와 replaceAll( )의 차이점
replace( )와 replaceAll( ) 함수 모두 대상 문자열을 원하는 문자 값으로 변환하는 함수이다. 본인은 replace( )를 통해서 문제를 해결하였고, replaceAll( )와의 차이점이 무엇인 지 궁금하였다.
String replace(CharSequence target, CharSequence replacement) String replaceAll(String regex, String replacement)
위의 replace( )와 replaceAll( ) 함수의 인자 값 형태를 보면 CharSequence와 String이라는 차이점을 볼 수 있다. 또한, replaceAll( )의 설명을 보면 regex라 나와있는데 이것은 "정규 표현식"을 의미한다.
따라서, 불특정 입력값을 변환하고자 할 때, replaceAll( ) 함수의 정규 표현식을 이용하여 개발을 진행할 수 있다.
728x90'Coding Test > Coding Test 문제 풀이' 카테고리의 다른 글
프로그래머스 (Level 1) - 없는 숫자 더하기 (0) 2021.12.26 프로그래머스 (Level 1) - 음양 더하기 (0) 2021.12.26 프로그래머스 (Level 1) - 로또의 최고 순위와 최저 순위 (0) 2021.12.26 프로그래머스 (Level 1) - 다트 게임 (0) 2021.12.25 프로그래머스 (Level 1) - 키패드 누르기 (0) 2021.12.24