Programmers | 코딩테스트 입문 - 문자열 뒤집기
2022. 12. 22. 15:05ㆍ공부/Programmers
프로그래머스 Lv.0 문자열 뒤집기
문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ my_string의 길이 ≤ 1,000
JAVA
class Solution {
public String solution(String my_string) {
String answer = "";
String[] stringArr = my_string.split("");
for(int i=(stringArr.length-1); i >= 0; i--){
answer += stringArr[i];
}
return answer;
}
}
다른 사람 풀이
import java.util.*;
class Solution {
public String solution(String my_string) {
StringBuilder sb = new StringBuilder();
sb.append(my_string);
sb.reverse();
return sb.toString();
}
}
문자열을 다루는 것들에는 String, StringBuffer, StringBuilder가 있다.
- String은 할당된 메모리 공간이 변하지 않는다.
- StringBuffer와 StringBuilder는 할당된 메모리 공간이 문자열 연산에 따라 변한다.
=> 이 부분에서 문자열 연산이 일어날 때마다 새로운 객체를 생성하는 String보다 속도가 빠르다.
- StringBuffer는 동기화가 보장된다. 따라서 멀티쓰레드에서 동시화가 진행될 때, 한 쓰레드에서 작업이 완료된 후에 다음 쓰레드로 넘어갈 수 있다.
=> 동기화가 보장되기 때문에, StringBuilder가 StringBuffer보다 속도가 빠르다.
*String vs StringBuffer vs StringBuilder 속도 비교 (동기화 보장X) String < String Buffer < StringBuilder |
코테할 때 StringBuilder 자주 써먹어야겠다😎
Python3
def solution(my_string):
my_string = list(my_string)
my_string.reverse();
my_string = ''.join(my_string)
return ''.join(list(my_string.reverse()))
다른 사람 풀이
def solution(my_string):
return ''.join(list(reversed(my_string)))
풀이 방식은 비슷하지만, 사용한 메소드가 달랐다.
reverse는 메소드로, 반환값(return)이 없고, 해당 객체의 데이터를 변환시킨다.
reversed는 내장함수로, 반환값(return)이 있다.
'공부 > Programmers' 카테고리의 다른 글
Programmers | 코딩테스트 입문 - 배열 자르기, 파이썬 slice 기능 (0) | 2022.12.23 |
---|---|
Programmers | 코딩테스트 입문 - 피자 나눠 먹기(3) (0) | 2022.12.22 |
Programmers | 코딩테스트 입문 - 배열 뒤집기 (0) | 2022.12.22 |
Programmers | 코딩테스트 입문 - 점의 위치 구하기 (0) | 2022.12.21 |
Programmers | 코딩테스트 입문 - 삼각형의 완성조건(1) (0) | 2022.12.21 |