JUINTINATION
백준 2557번: Hello World 본문
반응형
문제
https://www.acmicpc.net/problem/2557
풀이
앞으로 이 블로그에 알고리즘 문제 풀이는 자바 위주로 올라갈 예정이었지만 예전에 C언어로 풀었던 백준(Baekjoon Online Judge) 문제가 많아 종종 백준 알고리즘 태그의 글에는 C언어로 푼 코드도 같이 올라갈 예정입니다.
코드
C언어
1. 표준 입출력 라이브러리를 이용한 방법
라이브러리 함수는 헤더 파일에 정의되어 있기 때문에 정의된 함수를 사용하기 위해 소스코드에 반드시 stdio.h 헤더 파일을 포함해야 합니다.
#include <stdio.h>
main() {
printf("Hello World!\n");
}
2. puts() 함수를 이용한 방법
함수 원형: int puts(const char * string), 자동으로 맨 뒤에 \n가 붙습니다.
main() {
puts("Hello World!");
}
자바
1. System 클래스 표준 입출력을 이용한 방법
가장 기본이 되는 입출력 코드입니다. 데이터를 하나씩 읽어와 하나씩 출력하는 방식으로 데이터 양이 많아지면 시간 초과가 발생하는 경우가 있을 수 있습니다.
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
2. BufferWriter를 이용한 방법
데이터를 하나씩 읽어오지 않고 임시 공간(버퍼)에 저장해두었다가 한 번에 출력하는 방식입니다.
import java.io.IOException;
import java.io.BufferedWriter;
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("Hello World!"); // 버퍼에 데이터 입력
bw.newLine(); // 버퍼에 개행 삽입
bw.flush(); // 버퍼의 데이터 플러시
bw.close(); // 스트림 닫기
}
}
3. StringBuilder를 이용한 방법
BufferWriter와 비슷하게 데이터를 모아두었다가 한 번에 출력하는 방식입니다.
앞으로 여러 줄의 출력이 필요한 문제에 자주 사용될 예정입니다.
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("Hello World!"); // sb에 문장 삽입
System.out.println(sb); // sb의 문장 출력
}
}
결론
위의 방법보다 훨씬 더 많은 방법이 있겠지만 제가 실제로 자주 사용하는 방법 위주로 작성하였습니다. 앞으로도 계속 꾸준히 글 올려보도록 하겠습니다.
728x90
Comments