반응형
안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1677 종이 자르기 (자바, JAVA)입니다.
Intro
Question
문제 설명
입력
가로 길이 n과 세로 길이 m이 공백으로 분리되어 입력된다.(2 <= n, m <= 50)
출력
n*m 크기의 종이를 출력한다.
가로는 '-', 세로는 '|'로 출력하며, 가로와 세로가 겹치는 부분은 '+'로 출력한다.
예시
- 입력 : 4 3
- 출력 :
+--+
| |
+--+
Solution (풀이)
- 풀이 1 : 메모리 11096, 시간 : 정답
public class Answer1 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuffer sb = new StringBuffer();
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int width = Integer.parseInt(st.nextToken());
int height= Integer.parseInt(st.nextToken());
char[][] arr = new char[height][width];
for (int i=0; i<height; i++) {
for (int j=0; j<width; j++) {
if ( (i==0 || i==height-1) && (j==0 || j==width-1) ) {
arr[i][j] = '+';
} else if (i==0 || i==height-1) {
arr[i][j] = '-';
} else if (j==0 || j==width-1) {
arr[i][j] = '|';
} else {
}
}
}
for (char[] i : arr) {
for (char j : i) {
sb.append(j);
}
sb.append("\n");
}
System.out.println(sb);
}
}
- 풀이 2 : 메모리 11192, 시간 70
public class Answer2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuffer sb = new StringBuffer();
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int width = Integer.parseInt(st.nextToken());
int height= Integer.parseInt(st.nextToken());
for (int i=0; i<height; i++) {
for (int j=0; j<width; j++) {
if ( (i==0 || i==height-1) && (j==0 || j==width-1) ) {
sb.append('+');
} else if (i==0 || i==height-1) {
sb.append('-');
} else if (j==0 || j==width-1) {
sb.append('|');
} else {
sb.append(' ');
}
}
sb.append("\n");
}
System.out.println(sb);
}
}
Ranking(순위)
반응형
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp_Java] Q1357 : 삼각형 출력하기 4 (0) | 2023.04.12 |
---|---|
[CodeUp_Java] Q1675 : 시저의 암호 1 (0) | 2023.02.23 |
[CodeUp_Java] Q1678 : 철광석 제련 (2) | 2023.01.30 |
[CodeUp_Java] Q1701 : 세 정수 거꾸로 출력하기 (0) | 2023.01.18 |
[CodeUp_Java] Q1679 : 세모바퀴 만들기 (0) | 2023.01.18 |