LeetCode 문제 풀이
[LeetCode] 6번 Zigzag Conversion 문제를 풀어보았다. (ft. java)
pantrom
2023. 2. 4. 00:31
2023년 02월 03일 금요일 - 너무 많이 잃었다...
오늘 올려볼 문제는 6번 Zigzag Conversion 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.
블랙잭 꿀잼이지만 너무 많이 잃음 ㅠㅠ
입력
사진에서도 볼 수 있듯이 String 1개와 int 값 1개가 입력으로 들어온다.
풀이 및 코드
numRows 폭을 가지는 지그재그 String을 만들었을 때 맨 위 row부터 차례대로 읽었을 때 나오는 String을 구하는 문제이다.
오늘은 처음부터 정답을 생각해냈다.
row를 key 그리고 해당 row의 String을 value라고 생각해서 StringBuilder 배열을 만들어줬고 이를 나중에 한 번에 합쳐주는 방식으로 문제를 풀었다.
이제 코드를 봐보자!
풀이코드
class Solution {
public String convert(String s, int numRows) {
if(numRows == 1) return s;
var arr = new StringBuilder[numRows + 1];
for(int i = 0; i <= numRows; i++) arr[i] = new StringBuilder();
int index = 1, dir = -1;
for(var c: s.toCharArray()) {
if(index == 1 || index == numRows) dir *= -1;
arr[index].append(c);
index += dir;
}
for(int i = 1; i <= numRows; i++) arr[0].append(arr[i].toString());
return arr[0].toString();
}
}
제출 화면
오늘 블랙잭 재미있게 쳤지만 많이 잃었다 ㅠㅠ
내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.