Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- #프로그래머스 #코딩 #자바 #수열과구간쿼리1
- #프로그래머스
- #프로그래머스 #코딩 #자바 #문자열묶기
- #프로그래머스 #코딩 #l로만들기
- #프로그래머스 #코딩 #문자열뒤집기 #자바
- #프로그래머스 #자바 #코딩 #전국대회선발
- #JSP #Servlet #제이에스피 #서블릿 #필터 #filter #web.xml #필터예제 #filter예제
- #프로그래머스 #코딩 #자바 #수열과구간쿼리2
- #프로그래머스 #코딩 #자바 #문자열여러번뒤집기
- #프로그래머스 #자바 #코딩 #무작위로k개의수뽑기
- #프로그래머스 #코딩 #자바 #왼쪽오른쪽
- #프로그래머스 #코딩 #자바 #리스트자르기
- #프로그래머스 #자바 #코딩 #특정문자열로끝나는가장긴부분문자열찾기
- #프로그래머스 #자바 #코딩 #배열만들기2
- #프로그래머스 #코딩 #배열원소 삭제하기
- #프로그래머스 #코딩 #배열비교하기
- #프로그래머스 #코딩 #자바 #빈배열에추가삭제하기
- #JSP #Servlet #Ajax #에이젝스 #HTML #success #.HTML() #HTML로붙이기
- #프로그래머스 #코딩 #글자지우기 #자바
- #프로그래머스 #코딩 #자바 #2의영역
- #JSP #Servlet #제이에스피 #서블릿 #필터 #Filter @WebFilter #어노테이션필터
- #프로그래머스 #코딩 #배열만들기3
- #프로그래머스 #코딩 #문자열잘라서정렬하기
- #프로그래머스 #코딩 #자바 #문자열이몇번등장하는지세기
- #git #commit #message #깃커밋 #메시지 #gitmessage #누락 #reset #mixed #마지막커밋정정하기
- #프로그래머스 #코딩 #배열의길이에따라다른연산하기
- #프로그래머스 #코딩 #순서바꾸기
- 코딩 #자바 #조건에맞게수열변환하기2
- #프로그래머스 #코딩 #x사이의개수
- #프로그래머스 #코딩 #자바 #수열과구간쿼리3
Archives
- Today
- Total
David의 블로그
프로그래머스 - 문자열 뒤집기 본문
문제설명>
문자열 my_string과 정수 s, e가 매개변수로 주어질 때, my_string에서 인덱스 s부터 인덱스 e까지를 뒤집은 문자열을 return 하는 solution 함수를 작성해 주세요.
내 생각>
1) reverse() 이용하기.
for문으로 순회하여 역순으로 String을 가공하는 것보다
StirngBuilder 객체로 reverse()를 이용했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
// 문자열 뒤집기
// "Progra21Sremm3" 6 12 "ProgrammerS123"
// "Stanley1yelnatS" 4 10 "Stanley1yelnatS"
String my_string = "Progra21Sremm3";
int s = 6;
int e = 12;
String answer = "";
StringBuilder strB = new StringBuilder(my_string.substring(s, e + 1));
StringBuilder strB2 = new StringBuilder(my_string.substring(s, e + 1));
my_string = my_string.replace(strB, strB2.reverse());
System.out.println(my_string);
|
cs |
여기서 주의해야 할 점은
역순용 StringBuilder객체를 하나 더 생성해줬다는 점과
String.replace()는 값을 할당해 줄 변수가 필요하다는 점이다.
2) concat이용하기.
1
2
3
4
5
6
7
8
9
10
11
|
// concat으로 풀기
String temp = my_string.substring(s, e+1);
String tempStr = "";
for (int i = temp.length() - 1; i >= 0; i--) {
tempStr += temp.substring(i, i+1);
}
System.out.println(tempStr);
answer = answer.concat(my_string.substring(0, s).concat(tempStr).concat(my_string.substring(e+1)));
System.out.println(answer);
|
cs |
concat()으로 이용할 시, 어느 위치의 인덱스에 concat할 것인지 생각해야 했기때문에, 주어진 변수 s, e를 이용하여 concat()을 이용할 수 있었다.
3) for문 이용하기.
만약 이용하기 편한 StringBilder객체가 없다는 가정하에서 풀어봤다.
1
2
3
4
5
6
7
8
|
// for문으로 만들어보기.
String revStr = "";
for (int i = e; i >= s; i--) {
System.out.println(my_string.substring(i, i + 1));
revStr += my_string.substring(i, i + 1);
}
my_string = my_string.replace(my_string.substring(s, e + 1), revStr);
System.out.println(my_string);
|
cs |
위에 똑같이 for문으로 역순으로 가공한 문자열을 만들고,
replace()를 이용하여 결과를 만들어줬다.
'프로그래밍 > 코딩' 카테고리의 다른 글
프로그래머스 - 수열과 구간 쿼리1 (0) | 2024.06.22 |
---|---|
프로그래머스 - 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (0) | 2024.06.22 |
프로그래머스 - 글자지우기 (0) | 2024.06.22 |
프로그래머스 - 빈 배열에 추가, 삭제하기 (1) | 2024.06.04 |
프로그래머스 - 배열 만들기3 (0) | 2024.05.26 |