문제는 아래와 같다. 대충 단어를 교차하여 조합해 보라는 말인 것 같다~~
내가 푼 코드
class Solution {
public String mergeAlternately(String word1, String word2) {
int w1 = word1.length();
int w2 = word2.length();
StringBuilder sb = new StringBuilder();
int i = 0;
while (i < w1 || i < w2) {
if (i < w1) {
sb.append(word1.charAt(i));
}
if (i < w2) {
sb.append(word2.charAt(i));
}
i++;
}
return sb.toString();
}
}
한줄씩 코드를 해석해 보자면
- 주어진 word1 과 word2 글자의 길이만큼 반복문을 돌아야 하기 때문에 각 단어의 길이를 ( length() ) 숫자로 바꾼다.
- 문자를 이어 붙이고 어쩌고 저쩌고 해야 하니 StringBuilder 클래스를 생성 해준다.
- 숫자 변수 i 역시 선언해준다.
- 반복문을 작성 해 주는데 w1과 w2 중 더 긴 문자열의 길이만큼 반복해야 한다.
즉, word1과 word2 중 어느 하나가 더 길어도 그 길이만큼 반복한다는 뜻이다. 따라서 or 인 || 를 사용해 주었다. - 현재 i가 word1의 길이 범위 내에 있는 경우, word1에서 i번째 문자를 가져와서 sb에 추가한다.
문자열 추가는 append로 하며 charAt은 문자열에서 특정 위치에 있는 문자를 가져오는 메서드로 i 번째 문자를 가져와서 추가한다. - 같은 방식으로 w2도 진행해준다.
- i++을 사용 하여 반복문에서 사용되는 i를 증가시켜 다음 문자를 처리한다.
- 그 후 StringBuilder 객체(sb)를 문자열로 반환해야 하므로 toString()을 이용하여 리턴값을 정해준다.
'알고리즘' 카테고리의 다른 글
백준 11945 뜨거운 붕어빵 (feat.런타임 에러) (0) | 2024.11.18 |
---|---|
백준 2752 세수정렬 과거의 코드랑 비교하기 (1) | 2024.11.13 |
백준 5543 상근날드 1년전 코드랑 비교하기 (0) | 2024.11.07 |
자바, 자바스크립트 난수 생성 코드 (0) | 2023.07.25 |
백준 2798번 블랙잭 (0) | 2023.05.21 |