티스토리 뷰
이번 문제는 문자열을 자르는 것이다.
Split으로 사용할 구분 문자가 없고 잘라야할 위치만 전달하기에 Substring을 사용하기로 했다.
using System;
public class Solution {
public string[] solution(string my_str, int n) {
string[] answer = new string[my_str.Length / n + ((my_str.Length % n == 0) ? 0 : 1)];
for (int k = 0; k < answer.Length; k++) {
int start = k * n;
int length = Math.Min(n, my_str.Length - start);
answer[k] = my_str.Substring(start, length);
}
return answer;
}
}
이 문제를 풀며 멍청한 짓을 해서 시간이 걸렸다.
우선적으로 Substring을 사용한지 너무 오래되서 그런지 2번째 매개변수 length를 position으로 생각하여 값을 넣고 있었다.
다르게 설명하면 Substring의 첫번째 매개변수를 시작 위치, 두번째 매개변수를 끝 위치로 생각하여 넣은 것인데
length를 문자 그대로 해석하지 않고 "시작점에서 얼마만큼 자를까?"를 "시작점에서 어느 위치까지 갈까?"로 해석해버린 것이다.
str = "123456"
내 착각 :
str.Substring(2, 5); // "3456"
실제 동작 :
str.Substring(2, 4); // "3456"
'코딩테스트 > Programmers' 카테고리의 다른 글
[Programmers] 입문) 구슬을 나누는 경우의 수 (학습, 자료형, 수학, 해답 확인) (0) | 2023.07.07 |
---|---|
[Programmers] 입문) 문자열 계산하기 (Convert, Split) (0) | 2023.07.06 |
[Programmers] 입문) 영어가 싫어요 (Replace) (0) | 2023.07.05 |
[Programmers] 입문) 공 던지기 (0) | 2023.07.05 |
[Programmers] 입문) 소인수분해 (0) | 2023.07.05 |