안녕하세요, 주인장입니다.
TMI를 하나 말하고 싶은데요....
제 벨로그에 코딩테스트 연습문제 처음 업로드 기념 왜 이렇게 코테 벼락치기를 하게 되었는지 설명을 드리고자 합니다,,,^^
수업정정때 코테 수업을 들어갔는데
네? pccp로 시험보는데 심지어 절대평가요?
ㅋ.. 아 소현아 저때 나갔어야지...제발...네 코딩테스트 입문자는 웁니다... A0는 받고싶어요 B+은 살면서 한번도,,,네네,,, 그래서 이번 한 학기 코테를 아주 개 조질 예정입니다.
문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.
def solution(my_str, n):
answer = []
for _ in range(0, len(my_str), n):
answer.append(my_str[:n])
my_str = my_str[n:]
return answer
어휴 또 말 많은 tmi : 먼저 본인은 프론트이기도 하고 프론트 취업 코테는 요즘 js래서 js를 하려고 했는데, 수업 리뷰를 자바와 파이썬으로만 하신다고 하고, pccp도 자바, 파이썬, c라 작년에 하고 묵혀둔 자바를 코테 언어로 연습할 계획이다. 이래놓고 자바 함수에 열받아 js 할 수도? 암튼 이 문제를 , 수업시간에 급해서 그런지 자바로 풀어야 했는데 파이썬이 먼저 떠올랐다. 제출은 파이썬으로 했으나, 자바로 다시 벨로그를 통해 풀어보자.
문제를 살펴보면 my_str를 n만큼 잘라서 저장하고 난 뒤, 남은 것도 배열에 저장을 하란다 (헙)
<생각한 전개 과정>
substring? : 문자열을 원하는 위치에서 잘라야 할때 사용하는 자바의 함수.
String substring(int 시작하는인덱스번호, int 끝나는인덱스번호)
replace?: 문자열에서 자신이 바꾸고자 하는 값만 골라서 바꾸기 -> 이 문제에서는 n만큼 문자열에서 제거함.
자바 풀이
class Solution {
public List<String> solution(String my_str, int n) {
List<String> list = new ArrayList<>();
StringBuffer sb = new StringBuffer(my_str);
for (int i = 0; i < my_str.length(); i++) {
if (sb.length() > n) {
list.add(sb.substring(0, n));//n만큼 리스트에 추가
sb.replace(0, n, ""); //남은문자열제거
System.out.println(sb);
} else {
list.add(sb.toString());//남은길이만큼 더하기
break;
}
}
return list;
}
}
도장깨기 가보자고!!