문제설명문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. Java Code
📌 캬 ..기본적인 문제이지만 아직 알고리즘 초보이기 때문에 이런 풀이 방식이 너무 신박하게 다가오네요.. 사실 이 문제를 풀기 전에 한 번은 생각한 방법입니다.
하지만 풀이로 적용하지는 못했는데 정말 이렇게 푸신 분이 계셨네요.. 감사히 배우고 갑니다 ㅎ 😁 RATSENODEV/코딩테스트 문제풀기 [JAVA]프로그래머스(level1) - 문자열 다루기 기본RATSENO 2019. 12. 23. 15:14 문제설명문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다. 제한사항
문제풀이 문자열 다루기 기본 문제 설명 문자열 s의 길이가 4혹은 6이고, 숫자로만 구성되있는지 확인해주는 함수, solution을 완성하세요. 예를들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 이상, 길이 8 이하인 문자열입니다. 입출력 예
나의 풀이
일단 길이가 4나 6이 아닌경우 바로 false를 리턴하게 하였습니다. 그리고 for문을 돌면서 문자코드값이 '0' ~ '9' (숫자의 문자코드) 범위내에 있지 않으면 문자로 판단하고 false를 리턴하게 했습니다. 이 과정을 모두 통과한 문자열 s만이 true를 리턴할 수 있습니다. 포인트는 문자코드 '0' ~ '9' 값이 모두 일련의 문자코드로 나타난다는 것입니다.( 예, 0 : 48, 1 : 49, ... 9 : 57 ) 다른사람의 풀이
이 분은 try catch 문을 써서 해결하신 모습입니다. parseInt해서 예외가 발생하면 return문으로 이어지도록 하신것 같습니다. 이 부분을 소화하려면 Integer.parseInt()안의 매개변수로 들어가는 값에 문자열이 있으면 NumberFormatException이 발생한다는 사실을 인지하고 있어야 가능했던 풀이방법 같습니다. ^^
이 분은 정규표현식을 이용해서 해결하신 모습입니다. matches의 매개변수로 정규표현식을 넣으면 문자열 s 가 매개변수정규표현식에 부합되는 값이라면 true를, 아니면 false를 반환하는 메소드인 것 같습니다.
저는 이부분에 대해서 잘 몰랐는데 Character 클래스에 isDigit()이라는 메소드가 내장되어있더라구요. 안에 '1' 을 넣으면 true, 'a' 를 넣으면 false가 나오는 것으로 보아 숫자와 문자데이터를 구분해주는 메소드같습니다. ★★★ 알고리즘을 하면서 다른사람의 풀이를 보고 확실하게 더 얻어가는 부분이 이런거라고 생각합니다. 자기만의 풀이만 풀고 땡!! 치는 것이 아닌 다른사람은 어떻게 문제를 해결했는지를 통찰하고 저 자신도 다음의 알고리즘을 풀때 한층 더 새로운 방법에 대해서 경험을 한다는 것이 알고리즘을 공부하면서 좋은 점이라고 생각합니다. |