문제 URL
1. 문제의 접근을 하기전에 알아야 할 정보 3가지
1) 문자열을 분리하는 방법
자세히 모른다면 참조
2) String형을 int형으로 형변환
2. 풀이
이번엔 split 메서드 말고 stringTokenizer 클래스를 사용했다.
1) 내코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | package sanggun_chess; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int [] RC = new int [2]; int [] AB = new int [2]; StringTokenizer st1 = new StringTokenizer(br.readLine()); for(int i=0;i<2;i++) RC[i] = Integer.parseInt(st1.nextToken()); StringTokenizer st2 = new StringTokenizer(br.readLine()); for(int i=0;i<2;i++) AB[i] = Integer.parseInt(st2.nextToken()); for(int R=0; R<RC[0];R++){ for(int A =0; A<AB[0];A++){ if((R%2)==0){ for(int C=0; C<RC[1]/2;C++){ for(int B=0; B<AB[1];B++) System.out.print("X"); for(int B=0; B<AB[1];B++) System.out.print("."); } if((RC[1]%2)==1){ for(int B=0; B<AB[1];B++) System.out.print("X"); } } else{ for(int C=0; C<RC[1]/2;C++){ for(int B=0; B<AB[1];B++) System.out.print("."); for(int B=0; B<AB[1];B++) System.out.print("X"); } if((RC[1]%2)==1){ for(int B=0; B<AB[1];B++) System.out.print("."); } } System.out.println(); } } } } | cs |
2) 해설
3. 공부
1) 본받을 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | import java.io.*; import java.util.*; public class Main { private StringBuilder sb; private BufferedReader br; private BufferedWriter bw; private StringTokenizer st; private int R, C, A, B; public static void main(String[] args) { Main app = new Main(); app.start(); } private void start() { sb = new StringBuilder(); br = new BufferedReader(new InputStreamReader(System.in)); bw = new BufferedWriter(new OutputStreamWriter(System.out)); try { this.input(); this.solve(); this.output(); } catch (IOException e) { throw new RuntimeException(e.getMessage(), e); } } private void input() throws IOException { st = new StringTokenizer(br.readLine()); R = Integer.parseInt(st.nextToken()); C = Integer.parseInt(st.nextToken()); st = new StringTokenizer(br.readLine()); A = Integer.parseInt(st.nextToken()); B = Integer.parseInt(st.nextToken()); } private void solve() { for (int i = 0; i < R; i++) { if(i % 2 != 0){ for (int t = 0; t < A; t++) { for (int j = 0; j < C; j++) { if(j % 2 != 0){ for (int k = 0; k < B; k++) { sb.append('X'); } }else{ for (int k = 0; k < B; k++) { sb.append('.'); } } } sb.append("\n"); } }else{ for (int t = 0; t < A; t++) { for (int j = 0; j < C; j++) { if(j % 2 != 0){ for (int k = 0; k < B; k++) { sb.append('.'); } }else{ for (int k = 0; k < B; k++) { sb.append('X'); } } } sb.append("\n"); } } } } private void output() throws IOException { sb.deleteCharAt(sb.length() - 1); bw.write(sb.toString()); bw.flush(); bw.close(); } } | cs |
2) 해설
3) 마무리
'Algorithm > Problem Solving' 카테고리의 다른 글
[하나라도 제대로] 코딩테스트를 위한 PS 프로젝트 (0) | 2022.01.03 |
---|---|
[BackJoon]2750 수 정렬하기 (0) | 2018.05.01 |
[BackJoon] 2455 지능형 기차 (0) | 2017.06.05 |
[BackJoon] 2775문제 부녀회장이 될꺼야. (0) | 2017.06.05 |
[BackJoon] 9517문제 아이러브크로아티아 (0) | 2017.05.02 |