제대로 코딩 공부좀 시작할려고 leetcode 결제를 감행하였다. 돈이 들어갔으니 열심히 해야한다. 막 방대한 자료를 다루지는않고 좀 더 기본적인걸 주로 다루는걸 GeeksforGeeks와 비교하여 더 최신 트랜드를 따라가는것같아 결정하였다. 오... 코딩 테스트가 이렇게 진행되는구나.
Topic : Two pointers : 가장 기본적인 배치문제로 Array를 두 포인터로 위치를 옮겨가며 푸는방법이다.
문제로 스트링을 역순하는문제가 나왔고 어찌저찌풀었는데 오... 내 프로그램이 전체 서밋한 프로그램중에 어느 위치에 차지하고있는지 가르쳐주기까지! 그 이후에 답지는 정말 친절하게 효율적인 코드를 알려준다!
내가 막무가내로 풀었던 제출답 (아니 굳이 소수 짝수 안나눠도 됬구나..)
class Solution {
public:
void reverseString(vector<char>& s) {
if (s.size()%2 ==1){ // odd
for(int i=0 ; i < (s.size()-1)/2 ; i++){
char temp_char = s[s.size()-1-i];
s[s.size()-1-i] = s[i] ;
s[i] = temp_char ;
}
}
else{ // even
for(int i=0 ; i < s.size()/2 ; i++){
char temp_char = s[s.size()-1-i];
s[s.size()-1-i] = s[i] ;
s[i] = temp_char ;
}
}
}
};
여기서 알려준 모범답안
class Solution {
public void reverseString(char[] s) {
int left = 0, right = s.length - 1;
while (left < right) {
char tmp = s[left];
s[left++] = s[right];
s[right--] = tmp;
}
}
내가쓴 방법은 Two point를 제대로 이용하지못했고 위의 방법이 라이브러리를 안쓰고 얻을수있는 최적화인듯. !
'Data Structure & Algorithms > Arrays and Strings' 카테고리의 다른 글
[arrays and strings] 997.Squares of a Sorted Array (1) | 2023.03.01 |
---|---|
[Arrays and Strings] 1.Two sum - LeetCode (0) | 2023.02.28 |
[Arrays & String] 2회독 큰그림 잡기 - 자주쓰이는 템플릿정리 (0) | 2023.02.28 |
[Arrays] Container With Most Water (0) | 2022.10.11 |
Bubble Sort - 좁은 범위로 (0) | 2022.09.29 |
댓글