반응형
[백준] 2675번: 문자열 반복
2675번: 문자열 반복
문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다
www.acmicpc.net
Java 풀이
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int t = Integer.parseInt(br.readLine());
String[][] s = new String[t][];
for (int i = 0; i < t; ++i) {
s[i] = br.readLine().split(" ");
}
for (int i = 0; i < t; ++i) {
int re = Integer.parseInt(s[i][0]);
int len = s[i][1].length();
for (int j = 0; j < len; ++j) {
sb.append(charRepeat(s[i][1].charAt(j), re));
}
sb.append("\n");
}
bw.write(sb + "");
br.close();
bw.flush();
bw.close();
}
static String charRepeat(char c, int re) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < re; ++i) {
sb.append(c);
}
return sb.toString();
}
}
3중 for문을 쓰기에는 뭔가 자존심이 허락하지 않아서(?) 문자 하나를 주어진 반복 횟수만큼 반복하여 반환하는 함수를 만들었다. 근데 결국 이것도 3중 포문인디
속도 측면에서는 메서드를 사용하지 않는 3중 for문 쓰는 게 훨씬 나았다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int t = Integer.parseInt(br.readLine());
String[][] s = new String[t][];
for (int i = 0; i < t; ++i) {
s[i] = br.readLine().split(" ");
}
for (int i = 0; i < t; ++i) {
int re = Integer.parseInt(s[i][0]);
int len = s[i][1].length();
for (int j = 0; j < len; ++j) {
for (int k = 0; k < re; ++k) {
sb.append(s[i][1].charAt(j));
}
}
sb.append("\n");
}
bw.write(sb + "");
br.close();
bw.flush();
bw.close();
}
}
Python 3 풀이
t = int(input())
for i in range(t):
r, s = input().split()
for j in s:
print(int(r) * j, end="")
print()
파이썬으로 다시 풀어보면서 항상 현타가 오고 있따.
반응형
반응형
[백준] 2675번: 문자열 반복
2675번: 문자열 반복
문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다
www.acmicpc.net
Java 풀이
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int t = Integer.parseInt(br.readLine());
String[][] s = new String[t][];
for (int i = 0; i < t; ++i) {
s[i] = br.readLine().split(" ");
}
for (int i = 0; i < t; ++i) {
int re = Integer.parseInt(s[i][0]);
int len = s[i][1].length();
for (int j = 0; j < len; ++j) {
sb.append(charRepeat(s[i][1].charAt(j), re));
}
sb.append("\n");
}
bw.write(sb + "");
br.close();
bw.flush();
bw.close();
}
static String charRepeat(char c, int re) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < re; ++i) {
sb.append(c);
}
return sb.toString();
}
}
3중 for문을 쓰기에는 뭔가 자존심이 허락하지 않아서(?) 문자 하나를 주어진 반복 횟수만큼 반복하여 반환하는 함수를 만들었다. 근데 결국 이것도 3중 포문인디
속도 측면에서는 메서드를 사용하지 않는 3중 for문 쓰는 게 훨씬 나았다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int t = Integer.parseInt(br.readLine());
String[][] s = new String[t][];
for (int i = 0; i < t; ++i) {
s[i] = br.readLine().split(" ");
}
for (int i = 0; i < t; ++i) {
int re = Integer.parseInt(s[i][0]);
int len = s[i][1].length();
for (int j = 0; j < len; ++j) {
for (int k = 0; k < re; ++k) {
sb.append(s[i][1].charAt(j));
}
}
sb.append("\n");
}
bw.write(sb + "");
br.close();
bw.flush();
bw.close();
}
}
Python 3 풀이
t = int(input())
for i in range(t):
r, s = input().split()
for j in s:
print(int(r) * j, end="")
print()
파이썬으로 다시 풀어보면서 항상 현타가 오고 있따.
반응형