728x90
반응형
* 공부 목표
입출력 - 2557, 1000, 2558, 10950, 10951, 10952, 10953, 11021, 11022, 11718, 11719, 11720, 11721, 2741, 2742, 2739, 1924, 8393, 10818, 2438, 2439, 2440, 2441, 2442, 2445, 2522, 2446, 10991, 10992
- 2440번
문) 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제
1) Scanner 활용
1-1. for문 + 배열
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
sc.close();
String[] star = new String[N];
for(int i=0; i<N; i++) {
star[i] = "*".repeat(i+1);
}
Arrays.sort(star, Comparator.reverseOrder());
for(int i=0; i<N; i++) {
System.out.println(star[i]);
}
}
}
1-2. 중첩 for문
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
sc.close();
for(int i=0; i<N; i++) {
for (int j=i+1; j<=N; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
2) BufferedReader + BufferedWriter 활용
import java.util.*;
import java.io.*;
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));
int N = Integer.parseInt(br.readLine());
br.close();
for(int i=0; i<N; i++) {
for (int j=i+1; j<=N; j++) {
bw.write("*");
}
bw.write("\n");
}
bw.flush();
bw.close();
}
}
3) BufferedReader, BufferedWriter, StringTokenizer 까지 활용
import java.util.*;
import java.io.*;
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));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
br.close();
for(int i=0; i<N; i++) {
for (int j=i+1; j<=N; j++) {
bw.write("*");
}
bw.write("\n");
}
bw.flush();
bw.close();
}
}
가장 메모리 소요, 시간 짧았던 것 : 3) br + bw + st
비슷하게 소요, 코드 길이 더 짧았던 것 : 2) br + bw
메모리 많이 쓰는 축이지만 그나마 빨랐던 것 : 1.1 scanner + 배열
가장 효율 떨어진 것 : 1.2 중첩 for문
'알고리즘' 카테고리의 다른 글
[백준] 입출력 - 2442, 별찍기5 (0) | 2023.02.16 |
---|---|
[백준] - 2441, 별찍기4 (0) | 2023.02.14 |
[백준] - 2438, 2439(서칭) 별찍기 (0) | 2023.02.11 |
[백준] 입출력 - 10818 최대, 최소 (서칭) (0) | 2023.02.10 |
[백준] 입출력 - 8393 (0) | 2023.02.09 |