반응형
안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q2030 : 윈도우 화면 출력하기 (자바, JAVA)입니다.
Intro
Question
문제 설명
입력
첫째 줄에 실행될 프로그램 윈도우의 개수 n이 입력된다. (0 <= n <= 10)
둘째 줄부터 n+1째 줄까지 프로그램 윈도우에 대한 정보가 한 줄에 입력된다.
첫번째 정보는 프로그램명(공백없음, 길이 60글자이하),
두번째 세번째 정보는 프로그램 윈도우의 좌측 상단 (x1, y1) 이고,
네번째 다섯번째 정보는 프로그램 윈도우의 우측 하단 (x2, y2)이다.
출력
윈도우의 최종 상태를 출력한다.
예시
- 입력 :
2
ie9 2 3 15 6
chrome 10 8 20 13 - 출력 :
Solution (풀이)
- 풀이 : 메모리 11276, 시간 : 65
public class Answer2 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int count = Integer.parseInt(br.readLine());
StringTokenizer st;
char[][] window = new char[30][60]; // 윈도우 바탕화면 크기 2차원 배열로 초기화
for (int i=0; i<60; i++) {
for (int j=0; j<30; j++) {
window[j][i] = '.'; // 모든 인덱스의 값을 .으로 넣어 놓기
}
}
for (int i=0; i<count; i++) { // 열려있는 창의 개수만큼 for문 반복
st = new StringTokenizer(br.readLine());
String name = st.nextToken();
int leftX = Integer.parseInt(st.nextToken()); // 좌표 입력 받기
int leftY = Integer.parseInt(st.nextToken());
int rightX = Integer.parseInt(st.nextToken());
int rightY = Integer.parseInt(st.nextToken());
for (int j=leftX-1; j<rightX; j++) { // 해당 좌표의 index 자리에 맞추어 |나 - 혹은 공백 저장
for (int k=leftY-1; k<rightY; k++) {
if ( j==leftX-1 || j==rightX-1 ) {
window[k][j] = '|';
} else if (k==leftY-1 || k==rightY-1) {
window[k][j] = '-';
} else {
window[k][j] = ' ';
}
}
}
window[leftY-1][leftX-1] = '+'; // 각 모서리 부분 +로 저장
window[leftY-1][rightX-1] = '+';
window[rightY-1][leftX-1] = '+';
window[rightY-1][rightX-1] = '+';
for (int j=0; j<name.length(); j++) {
if (j < rightX-leftX-1) { // charAt을 이용하여 창 이름 입력
window[leftY-1][leftX+j] = name.charAt(j);
} else {
}
}
}
// for each문을 이용한 출쳑
for (char i[] : window) {
for (char j : i) {
sb.append(j);
}
sb.append("\n");
}
System.out.println(sb);
}
}
Ranking(순위)
반응형
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp_Java] Q2027 : 콘웨이의 1만 달러짜리 수열 (0) | 2022.11.22 |
---|---|
[CodeUp_Java] Q2028 : 삼각수 (0) | 2022.11.21 |
[CodeUp_Java] Q2031 : 엑셀의 열 순서 2 (0) | 2022.11.21 |
[CodeUp_Java] Q1852 : 재귀로 1부터 n까지 한 줄로 출력하기 (0) | 2022.08.04 |
[CodeUp_Java] Q1722 : 여러 점 간의 거리 (0) | 2022.08.03 |