일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BFS
- aws
- 프로그래머스
- ETRI
- DFS
- 배포
- 대전
- 골드5
- 알고리즘
- 스프링 부트
- 정처기
- 엘라스틱빈스톡
- 한국전자통신연구원
- DP
- 스프링부트
- 카테부
- 카카오테크 부트캠프
- express.js
- 코딩테스트 고득점 kit
- EC2
- 자바
- 디자인패턴
- 자료구조
- 골드3
- 인스턴스
- 정보처리기사
- 백준 알고리즘
- 도커
- 골드4
- Express
JUINTINATION
백준 2557번: Hello World 본문
문제
https://www.acmicpc.net/problem/2557
2557번: Hello World
Hello World!를 출력하시오.
www.acmicpc.net
풀이
앞으로 이 블로그에 알고리즘 문제 풀이는 자바 위주로 올라갈 예정이었지만 예전에 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의 문장 출력
}
}
결론
위의 방법보다 훨씬 더 많은 방법이 있겠지만 제가 실제로 자주 사용하는 방법 위주로 작성하였습니다. 앞으로도 계속 꾸준히 글 올려보도록 하겠습니다.