문자열을 다뤄보자.
백준 2675 문자열 반복 자바 파이썬
https://www.acmicpc.net/problem/2675
2675번: 문자열 반복
문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다
www.acmicpc.net
[JAVA]
기초적인 문자열 다루는 문제이다.
1. BufferedReader 로 입력 받고
2. 한 문자씩 다룰 수 있게 배열에 넣고
3. 반복하면서 StringBuffer에 담아 최종 출력하기
>> for문안에 new char[] 가 마음에 안들어서 밖으로 빼야겠다고 자꾸만 생각이 든다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuffer sb = new StringBuffer("");
int N = Integer.parseInt(br.readLine());
for(int i=0;i<N;i++) {
String s = br.readLine();
char[] c = new char[s.length()];
for(int j=0;j<s.length();j++) {
c[j]=s.charAt(j);
}
for(int k=2;k<s.length();k++) {
for(int m=0;m<c[0]-48;m++) {
sb.append(c[k]);
}
}
sb.append('\n');
}
System.out.println(sb);
}
}
for 문 안에 new char[] 를 밖으로 빼내면서 ArrayList 사용해보자.
마음은 편하지만 메모리 사용량은 정확히 같았다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuffer sb = new StringBuffer("");
ArrayList<Character> list = new ArrayList<>();
int N = Integer.parseInt(br.readLine());
for(int i=0;i<N;i++) {
String s = br.readLine();
for(int j=0;j<s.length();j++) {
list.add(j,s.charAt(j));
}
for(int k=2;k<s.length();k++) {
for(int m=0;m<list.get(0)-48;m++) {
sb.append(list.get(k));
}
}
sb.append('\n');
list.clear();
}
System.out.println(sb);
}
}
[Python]
입력받고 배열에 담아서 출력.
import sys
for _ in range(int(input())):
S=sys.stdin.readline()
arr=[]
for i in range(2,int(len(S))-1):
for j in range(int(S[0])):
arr.append(S[i])
print(''.join(arr))
'알고리즘 > 알고리즘문제' 카테고리의 다른 글
[알고리즘] 백준 14888 연산자 끼워넣기 파이썬 (0) | 2022.07.26 |
---|---|
[알고리즘] 백준 1002 터렛 파이썬 (0) | 2022.07.18 |
[알고리즘] 백준 1753 최단경로 (0) | 2022.07.08 |
동적계획법 - 백준 9184 (0) | 2022.07.05 |
Map - 숫자 카드 (0) | 2022.07.04 |