10718번 - We love kriii 풀이
처음에는 print 메서드 쓰면 되겠다 생각했다가
Buffer 코드 연습해볼겸 BufferedWriter로 작성했습니다.
위 코드 복사하기 접은글
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write("강한친구 대한육군\n");
bw.write("강한친구 대한육군");
bw.flush();
bw.close();
}
}
어제 백준 2557 풀고 포스팅하면서도 언급했었던 것 같은데
IOException 예외처리를 내가 직접 try ~ catch 문으로 해주는게 아니라
throws를 통해 main 에서 제가 IOException 을 발생시킨 것을 상위 메서드로 에러를 던집니다.
에러 처리를 제가 하지 않으면 백준 코드 시간 소요가 줄어들게 됩니다.
저는 백준 문제를 풀 때 이클립스 도움을 조금씩 받는데요
(okky 같은 사이트 둘러보다 보면 일부분은 ide도 사용 못하게 한다고 그러던데 말도 안되는거 아닌가요...
자동완성 절대 못잃어... 😂)
노란색 전구를 누르고 Add throws declaration 을 눌러주면
자동으로 이렇게 throws 를 해줍니다.
이런 방식으로 10171 고양이 문제 10172 개 문제도 슥삭 풀어 버리겠습니다.
10171번 - 고양이 풀이
저는 10171 문제는 2번에 걸쳐서 제출해보았는데요,
Escape 문자에만 유의해서 풀어줬습니다.
- Escape 문자
특수한 기능을 가진 문자들을 출력하기 위한 문자입니다.
특정 문자들을 출력하려고 하면 문제가 발생하기 때문에 Escape 문자가 필요한데요,
앞에 \가 붙은 문자는 Escape 문자로 간주합니다.
앞에 붙은 \ 와 뒤의 문자가 합쳐져서 하나의 문자로 인식됩니다.
\n, \t, \\, \", \' 가 있습니다.
서식 | 설명 |
\n | 줄 바꿈을 출력할 때 사용하는 Escape 문자 |
\t | Tab키를 출력할 때 사용하는 Escape 문자 |
\\ | 그냥 역슬래시를 출력하고 싶을 때 사용하는 Escape 문자 |
\" | 그냥 큰따옴표를 출력하고 싶을 때 사용하는 Escape 문자 |
\' | 그냥 작은따옴표를 출력하고 싶을 때 사용하는 Escape 문자 |
bw.newLine 은 String 문자열 안에서 \n 처리와 동일했는데 백준 알고리즘 사이트에서는 어떤 차이를 보일까 궁금해서 두 번 제출해 보았습니다.
딱히 별 차이는 없었습니다.
다만 메모리 소요 차이만 있었네요.
먼저 제출한 bw.newLine() 호출 방식이 메모리 소요가
70 kb 정 도로 작은 미미한 차이만 보였습니다.
다만 더 깔끔해 보이는 것은 두번 째 작성한 방식이네요
위 코드 복사하기 접은글
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write("\\ /\\\n");
bw.write(" ) ( ')\n");
bw.write("( / )\n");
bw.write(" \\(__)|\n");
bw.flush();
bw.close();
}
}
10172 - 개 풀이
아 ㅋㅋ 이 문제 왤캐 안풀리나 10분동안 고민해봤는데 4번째 줄에 작은따옴표가 아니고 ` (backtick) 이었습니다.
위 코드 복사하기 접은글
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write("|\\_/|\n");
bw.write("|q p| /}\n");
bw.write("( 0 )\"\"\"\\\n");
bw.write("|\"^\"` |\n");
bw.write("||_/=\\\\__|");
bw.flush();
bw.close();
}
}
이 문제를 많이 틀린 이유는 대부분 백틱 기호 실수가 아닐까 싶네요.
준비한 글은 여기까지입니다. 도움이 되셨다면 공감 버튼 하나씩만 눌러주세요~!
'Java (국비지원 당시 공부했던 글) > Java 프로그래밍' 카테고리의 다른 글
[JDBC] JDBC 란 무엇인가 (자바에서 DB연결해서 코딩하기), JDBC API 참조 (0) | 2022.07.17 |
---|---|
[자바] - 백준 2557번 문제 풀이, BufferedWriter flush() 사용 이유 (0) | 2022.06.05 |
[자바] 무작위 숫자 생성 (2) - Random 클래스 (0) | 2022.04.26 |
[자바] 무작위 숫자 생성 (1) - Math.random() (0) | 2022.04.22 |
제어구조(control structure) (0) | 2022.04.15 |