Code Signal -Arcade
코드시그널
아케이드 문제 관련 풀이들을 구글링하면서 찾아가는 일지를 하나씩하나씩 기록하고자 합니당.
주로 자바 위주로 풀이를 올릴예정이고, 추가로 공부하고 있는 파이썬이나 코틀린, GO, 자바스크립트 더 나아가 스위프트까지...
되는대로 가능한대로 구글링하고 정답맞추면 바로 패스!!
이런식으로 좋은 코드이든 말든 짜집기한 결과물들을 개인적 소장을 위해 기록합니다. ^^
참고 사이트들은 아래에 링크로 남겨둘터이니 자세하고 더욱 깊은 내용들은 링크로 들어가보세요! \
Longest Digits Prefix
가장 킨 아라비아 숫자접미사?
가장 긴 아라비아 숫자로 된 접미사 숫자열을 문자열 형태로 반환하라.
뭔말이가 하니,, 예시를 보면 이해가 됩니다..
답안을 볼까요.
String longestDigitsPrefix(String input) {
// 가장 긴 아라비아 숫자로 된 접미사 숫자열을 문자열 형태로 반환하라.
String result = "";
Pattern pattern = Pattern.compile("^[0-9]+");
Matcher matching = pattern.matcher(input);
if(matching.find()){ result = input.substring(matching.start(), matching.end());}
return result;
}
리턴값 result를 선언해준뒤,
Pattern / Compile을 통해서
^[0-9]+
을 통해 숫자들 여러개가 처음 보이는 것을 걸러줍니다.
정규식 테스트를 통해 이렇게 숫자만 걸러주는 것을 보입니다.
정규식 테스트사이트를 통해 어려운 정규식을 연습해보는것도 좋습니다..
아무튼 이렇게 걸러낸 숫자들을 그대로 input값에 있는지 확인해서, 그것을 Result에 넣어주면 끝입니다.
이제 엘리트 분들의 답안을 감상하자...
JAVA
String longestDigitsPrefix(String inputString) {
return inputString.replaceAll("^(\\d*).*","$1");
}
이분은 아예 패턴이구 뭐고 그냥 한번에 검증해서 $1을 통해 그룹 1번째것을 replaceAll해주어 리턴시켰네요..
더 좋은 방법같아요!!
하나 배웁니다.. 아직도 잘 모르겠지만 말이죠.
Python3
def longestDigitsPrefix(inputString):
return re.findall('^\d*',inputString)[0]
파이썬도 비슷한 방법인듯하네요.
JS
function longestDigitsPrefix(inputString) {
return inputString.match(/^\d*/)[0]
}
JS도 마찬가지.. match를 통해서 바로 구한듯합니다.
공감 버튼♥ 눌러주시면 더욱 많은 포스팅을 올리는데 힘이 됩니다!
부탁드려요 돈드는거 아니잖아요~
'Algorithm > Java' 카테고리의 다른 글
#41_Code Signal Arcade >> Digit Degree (0) | 2020.03.08 |
---|---|
#39_Code Signal Arcade >> Knapsack Light (0) | 2020.03.06 |
#38_Code Signal Arcade >> Growing Plant (0) | 2020.03.05 |