개발일지

[백준 JAVA] 2557번: Hello World 본문

Java/알고리즘 공부

[백준 JAVA] 2557번: Hello World

O'mil 2022. 12. 18. 14:51
728x90
문제

https://www.acmicpc.net/problem/2557


풀이

System.out.println("Hello World!");

 

 

 


추가 풀이

위의 방법으로 문제를 풀고 넘어갔다.

블로그에 포스팅 하기 위해 다른 분들을 어떻게 푸셨는지 찾아봤는데 한가지 방법이 아니라 다양한 방법으로 푸신걸 보았다.

가장 간단한 출력 문제인데도 다양한 방법으로 풀어보실 생각을 하셨다는게 너무 멋져 보였고 내가 부끄러웠다.

 

공부를 위해 푸는 것이니 다양한 방법으로 푸신 분들의 풀이법을 보며 하나하나 따라해볼 생각이다.

 

 

#추가풀이 1 (System 클래스 - 표준 입출력)

- 각 코드의 차이점

1. System.out.print

  • 형식(int, float, double 등)에 구애받지 않는 문자를 그대로 출력
  • 문자 출력 후 개행 안 됨. (줄바꿈이 필요 없을 때 사용)

2. System.out.println

  • print와 동일하게 형식(int, float, double 등)에 구애받지 않는 문자를 그대로 출력
  • 차이점은 문자 출력 후 개행이 된다.

3. System.out.printf

  • 형식을 신경써야할 때 사용(int, long, float, double 등)
  • 개행 안 됨.

 

 


#추가풀이 2

- BufferedWriter을 이용하는 방법

BufferedWriter는 Buffer에 있는 IO 클래스인데 이 클래스들은 데이터를 하나씩 읽어오는 것 X

-> 버퍼라는 임시 공간에 저장해 두었다가 한 번에 출력하는 방식을 사용한다.

 

 


#추가풀이 3

- StringBuilder를 사용하는 방법

 

이 또한 BufferedWriter 와 유사하게 데이터를 모아두었다가 한 번에 출력.

특히나 문자열을 조작할 때 매우 유용하다.

 

특징이 있다면 StringBuilder에서 문자열을 이어 붙인다는 점이다.

 

+) StringBuilder

- StringBuilder는 String 클래스와 유사하나 다른 점은 String 클래스는 불변, StringBuilder 클래스는 가변

- String 클래스의 문자열을 한 번 생성되면 메모리 내부에서 변경이 불가능하다.

- StringBuilder는 새로운 문자열을 만들어내지 않고, 기존의 문자열에 추가되는 것이다. -> 문자열을 조작할 때 매우 유용함!!

 

 


# 추가풀이 4

- StringBuffer를 사용한 방법

StringBuilder와 비슷하지만 StringBuffer는 동기화를 지원한다.

 

동기화를 지원하다 보니 StringBuilder보단 느리지만 문자열 조작에 있어 String 보다 훨씬 빠르다.

 

 

+) String / StringBuffer / StringBuilder

- String VS StringBuilder/StringBuffer

String은 불변 Builder와 Buffer은 가변으로 변하는 문자열을 읽을 경우는 Builder/Buffer을 사용해야 함

 

- StringBuffer VS StringBuilder

Buffer는 동기화를 지원 -> 멀티쓰레드 환경에서 안전함

Builder는 지원하지 않음 -> 멀티쓰레드 환경에 적합하지 않음 but, 단일쓰레드 환경에서의 성능은 StringBuffer보다 뛰어남.

+) String은 불변이기 때문에 멀티쓰레드 환경에서 안전함

 

 


참고)

https://st-lab.tistory.com/2

https://beingdesigner.tistory.com/10

https://eenn.tistory.com/entry/Unhandled-exception-type-IOException-컴파일-에러

https://m.blog.naver.com/itinstructor/100203105622

https://ifuwanna.tistory.com/221

 

 

 

 

 

728x90
Comments