| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 프로그래머스 #특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #조건별로 분류하여 주문상태 출력하기 #MySQL #쿼리문 #알고리즘 #코린이 #개발자 #study #취준
- 프로그래머스 #배열 회전시키기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 코린이 #개발자 #study
- 프로그래머스 #부분 문자열 이어 붙여 문자열 만들기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #조건에 맞게 수열 변환하기 1 #알고리즘 #자바 #Java #코린이 #개발자 #study #취준
- 프로그래머스 #카테고리 별 도서 판매량 집계하기 #알고리즘 #쿼리문 #MySQL #코린이 #개발자 #study #취준
- 프로그래머스 #간단한 식 계산하기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #있었는데요 없었습니다 #DB #MySQL #알고리즘 #쿼리문 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #문자열이 몇 번 등장하는지 세기 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #배열만들기 5 #알고리즘 #study #Java #코린이 #개발자 #성장 #공부
- 프로그래머스 #길이에 따른 연산 #알고리즘 #자바 #Java #코린이 #개발자 #study #취준
- 프로그래머스 #할 일 목록 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #오랜 기간 보호한 동물(1) #알고리즘 #MySQL #DB #쿼리문 #개발자 #study #성장 #코린이
- 프로그래머스 #합성수 찾기 #알고리즘 #Java #자바 #stiudy #코린이 #개발자 #공부 #성장
- 프로그래머스 #문자열 뒤집기 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부 #성장
- 파이썬 #input() #sys.stdin.readline() #공부 #study
- 프로그래머스 #2차원으로 만들기 #알고리즘 #Java #자바 #study #코린이 #개발자 #공부 #성장
- 프로그래머스 #1로 만들기 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #수열과 구간 쿼리 3 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #수열과 구간 쿼리1 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #세로 읽기 #알고리즘 #개발자 #코린이 #study #성장 #Java #자바
- 프로그래머스 #등차수열의 특정한 항만 더하기 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부
- 프로그래머스 #중복된 문자 제거 #알고리즘 #Java #자바 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #소수 만들기 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #조건에 맞는 사용자와 총 거래금액 조회하기 #알고리즘 #Mysql #DB #쿼리문 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #열의 길이를 2의 거듭제곱으로 만들기 #Java #자바 #알고리즘 #코린이 #개발자 #study #공부 #성장
- 프로그래머스 #푸드 파이트 대회 #알고리즘 #Java #자바 #코린이 #개발자 #study #취준
- 프로그래머스 #날짜 비교하기 #알고리즘 #자바 #Java #코린이 #개발자 #study #공부 #성장
- 백준 #
- Today
- Total
luke
[프로그래머스] - 세로 읽기 (Java/자바) 본문
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/181904
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제.

풀이.
import java.util.*;
class Solution {
public String solution(String my_string, int m, int c) {
List<String> list = new ArrayList<>();
for(int i = 0; i < my_string.length(); i+=m){
list.add(my_string.substring(i, i + m));
}
StringBuilder sb = new StringBuilder();
for(String s : list){
sb.append(s.charAt(c - 1));
}
String answer = sb.toString();
return answer;
}
}
오늘 문제는 프로그래머스 "세로 읽기" 문제다.
문제 접근은 주어진 my_string 문자열 값을 m만큼 자른 다음 m번째 만큼 자른 그룹의 c번째 값을 출력해 문자열로 만드는 거다.
그럼 바로 풀이해보겠다.
1. 그룹을 만들어 주기 위해 List를 생성해 준다.
2. for문을 사용해 준다. 여기서 i++이 아닌 i+=m을 해주는데 이유는 m만큼 잘라 그룹을 만들어 주기 위해다. 그러면 4,8,12,16,20...으로 각 그룹이 시작하게 된다. 다음 list.add()를 통해 저장해 주는데 substring()을 사용해 i번째부터 i + m 번째까지 잘라 저장해준다. 그럼 우리가 원하는 4,4,4... 그룹으로 만들어진다.
3. StringBuilder를 생성해준다.
4. for-each문을 사용해 list값을 출력해준다. list의 값은 이미 4개씩 그룹으로 나눠져 있으니 s.charAt()를 사용해 c - 1 즉 s 값의 c-1번째 값을 출력해 StringBuilder를 생성한 sb에 값을 넣어 준다.
5. 마지막으로 answer 변수에 sb값을 toString()으로 출력해주면 끝이다.
하지만 문제를 풀면서 다른 사람들의 풀이를 보니 훨씬 간편하고 좋은 코드가 있어 밑에 적어 두겠다.
class Solution {
public String solution(String my_string, int m, int c) {
String answer = "";
for (int i = c - 1; i < my_string.length(); i += m) {
answer += my_string.charAt(i);
}
return answer;
}
}
훨씬 가독성 좋고 성능 또한 좋은 코드이다.
'알고리즘문제 > 프로그래머스(Java)' 카테고리의 다른 글
| [프로그래머스] - 합성수 찾기 (Java/자바) (0) | 2026.01.12 |
|---|---|
| [프로그래머스] - 등차수열의 특정한 항만 더하기 (Java/자바) (0) | 2025.12.21 |
| [프로그래머스] - 배열 회전시키기 (Java/자바) (0) | 2025.12.02 |
| [프로그래머스] - 푸드 파이트 대회 (Java/자바) (0) | 2025.12.01 |
| [프로그래머스] - 부분 문자열 이어 붙여 문자열 만들기 (Java/자바) (0) | 2025.12.01 |