99클럽 코테 스터디 2일차 TIL
💙 JAVA 비기너
class Solution {
public int solution(String t, String p) {
int answer = 0;
char[] arr = t.toCharArray();
long pnum = Long.parseLong(p);
for (int i=0; i <= arr.length - p.length(); i++) {
String str = "";
for (int j=0; j < p.length(); j++) {
str += arr[i+j];
}
long number = Long.parseLong(str);
if(number <= pnum) answer++;
}
return answer;
}
}
class Solution {
public int solution(String t, String p) {
int answer = 0;
long pnum = Long.parseLong(p);
for (int i=0; i <= t.length() - p.length(); i++) {
if (pnum >= Long.parseLong(t.substring(i, i+p.length()))) answer++;
}
return answer;
}
}
이중 for문을 사용한 노가다 코드를 작성하고 있었는데 채점 전에 String.substring()
함수가 생각이 났다. 그래도 그동안 한 게 아까워서 두 방식으로 구현했다.
작성 코드 1은 숫자로 이루어진 문자열 t
를 char[]
로 만들어서 문자를 하나씩 한땀한땀 문자열str
에 붙혀준 후 Long.parseLong()
로 데이터타입을 long
으로 변경해줘서 비교했다.
작성 코드 2는 t
를 문자 배열로 변경하지 않고 String.substring()
함수를 이용하여 바로 잘라 쓰는 방식이다. String.substring(a, b)
이면 a번째 문자부터 b번째 문자까지 잘라낸다.
함수 하나의 차이로 코드가 확 간결해졌다. 좀 더 빨리 깨달았으면 좋았겠다 싶었지만 오히려 늦게 기억하는 덕분에 코드 정리가 어떻게 되는지 더 돋보이지 않았나 싶다.