본문 바로가기

별걸다하는 IT/알고리즘 문제풀이

[백준 BAEKJOON] 2557번 Hello World 출력, 10718번 We love kriii

백준(BAEKJOON) 알고리즘 문제 풀기- 난이도: 하

[2557] Hello World

----------------------------------------------------------------------------------------

문제: Hello World!를 출력하시오

 

입력: 없음

 

출력: Hello World!

----------------------------------------------------------------------------------------

[10718] We love kriii

----------------------------------------------------------------------------------------

문제ACM-ICPC 인터넷 예선, Regional, 그리고 World Finals까지 이미 2회씩 진출해버린 kriii는 미련을 버리지 못하고 왠지 모르게 올 해에도 파주 World Finals 준비 캠프에 참여했다.

대회를 뜰 줄 모르는 지박령 kriii를 위해서 격려의 문구를 출력해주자.

 

입력: 본 문제는 입력이 없다.

 

출력: 두 줄에 걸쳐 "강한친구 대한육군"을 한 줄에 한 번씩 출력한다.

----------------------------------------------------------------------------------------

 

ANSWER

둘 다 진짜 기초 중에 기초,, 문제라고 부르기 약간 민망한 출력하는 문제입니다. 그대로 출력만 해주면 돼요.

[C언어] - 2557번 -puts

#include <stdio.h>
int main(){
    puts("Hello World!");
    return 0;
}

메모리: 1116KB

코드 길이: 72B

시간: 0ms

 

[C언어]-10718번 -puts

#include <stdio.h>
int main()
{
    puts("강한친구 대한육군");
    puts("강한친구 대한육군");
    return 0;
}

메모리: 1116KB

코드 길이: 131B

시간: 0ms

 

puts는 printf보다 좀 더 심플하지만 자동으로 개행문자를 넣어줍니다 (즉 엔터 친 것처럼 한 줄 띄어진다는 얘기)

한줄 띄기 원하지 않으면 fputs나 printf를 사용할 것!

[C언어] - 2557번 -fputs

#include <stdio.h>
int main()
{
    fputs("Hello World!", stdout);
    return 0;
}

메모리: 1116KB

코드 길이: 81B

시간 0ms

 

[C언어] - 2557번 -printf

#include <stdio.h>
int main()
{
    printf("Hello World!");
    return 0;
}

메모리: 1116KB

코드 길이: 80B

시간: 0ms

 

[C++ 14] - 2557번- cout

#include <iostream>
int main()
{
    std::cout<<"Hello World!";
    return 0;
}

메모리: 1984KB

코드길이: 84B

시간: 0ms

 

[C++ 14]- 10718번 - cout

#include <iostream>
int main()
{
   std::cout<<"강한친구 대한육군"<<std::endl;
   std::cout<<"강한친구 대한육군"<<std::endl;
   return 0; 
}

메모리: 1984KB

코드길이: 162B

시간: 0ms

 

C의 printf와 cout를 잘 비교해 놓은 답변이예요. 참고하면 좋을 듯 합니다.

 

[Java] -2557

class Main {
    public static void main(String args[]){
        System.out.print("Hello World!");
    }
}

메모리: 12656KB

코드길이: 98B

시간: 68ms

 

[Java] - 10718번

class Main{
    public static void main(String args[]){
        System.out.println("강한친구 대한육군");
        System.out.println("강한친구 대한육군");
    }
}

메모리: 12660KB

코드길이: 184B

시간: 64ms

확실히 C나 C++에 비해서 자바가 좀 더 느리네요.

 

[파이썬 Python] - 2557번

print("Hello World!")

메모리: 29056KB

코드길이: 21B

시간: 60ms

 

 

참고로 출력속도 비교 관련 내용의 글이 있길래 참고하라고 가져왔습니다 (from baekjoon)

순위 언어 출력 방법 평균 (초)
1 C11 fwrite 0.4423
2 C++17 ios_base::sync_with_stdio(false); cout << i << '\n'; 0.827
3 C++17 ios_base::sync_with_stdio(false); cout.tie(NULL); cout << i << '\n'; 0.8272
4 C++17 printf("%d\n",i); 0.8614
5 C11 printf("%d\n",i); 0.9118
6 C++17 cout << i << '\n'; 0.9229
7 Java BufferedWriter, bf.write(i + "\n"); 0.9581
8 PyPy for i in xrange(1,n+1): sys.stdout.write(str(i)+'\n') 0.9847
9 C++17 s += to_string(i) + '\n';를 이용해 문자열 하나로 만든 다음, 마지막에 cout << s << '\n'; 1.1507
10 Java StringBuilder를 이용해 문자열 하나로 만든 다음, System.out.println(sb); 1.1881
11 Java BufferedWriter, bf.write(Integer.toString(i)); bf.newLine(); 1.2556
12 PyPy3 for i in range(1,n+1): sys.stdout.write(str(i)+'\n') 1.3722
13 PyPy print '\n'.join(map(str,xrange(1,n+1))) 1.3738
14 PyPy sys.stdout.write('\n'.join(map(str,xrange(1,n+1)))) 1.3772
15 PyPy for i in xrange(1,n+1): print i 1.4968
16 Python 2 print '\n'.join(map(str,xrange(1,n+1))) 1.7621
17 Python 2 sys.stdout.write('\n'.join(map(str,xrange(1,n+1)))) 1.7658
18 Java PrintWriter 1.954
19 Python 3 print('\n'.join(map(str,range(1,n+1)))) 2.3312
20 Python 3 sys.stdout.write('\n'.join(map(str,range(1,n+1)))) 2.337
21 PyPy sys.stdout.write(''.join(str(i)+'\n' for i in xrange(1,n+1))) 2.3935
22 PyPy print ''.join(str(i)+'\n' for i in xrange(1,n+1)) 2.3974
23 Python 2 sys.stdout.write(''.join(str(i)+'\n' for i in xrange(1,n+1))) 2.536
24 Python 2 print ''.join(str(i)+'\n' for i in xrange(1,n+1)) 2.5372
25 PyPy3 for i in range(1,n+1): print(i) 3.051
26 Python 2 for i in xrange(1,n+1): print i 3.069
27 C# 6.0 StreamWriter 3.0959
28 PyPy3 sys.stdout.write('\n'.join(map(str,range(1,n+1)))) 3.5625
29 PyPy3 print('\n'.join(map(str,range(1,n+1)))) 3.566
30 Python 3 sys.stdout.write(''.join(str(i)+'\n' for i in range(1,n+1))) 3.6766
31 Python 3 print(''.join(str(i)+'\n' for i in range(1,n+1))) 3.6836
32 PyPy3 print(''.join(str(i)+'\n' for i in range(1,n+1))) 3.8326
33 PyPy3 sys.stdout.write(''.join(str(i)+'\n' for i in range(1,n+1))) 3.8339
34 C# 6.0 StringBuilder를 이용해 문자열 하나로 만든 다음, Console.Write(sb); 3.8562
35 Python 2 for i in xrange(1,n+1): sys.stdout.write(str(i)+'\n') 4.3475
36 Python 3 for i in range(1,n+1): sys.stdout.write(str(i)+'\n') 5.3699
37 Python 3 for i in range(1,n+1): print(i) 5.8186
38 PyPy for i in xrange(1,n+1): os.write(1,str(i)+'\n') 10.4553
39 C++17 cout << i << endl; 11.5322
40 PyPy3 for i in range(1,n+1): os.write(1,(str(i)+'\n').encode('utf-8')) 12.0509
41 Python 2 for i in xrange(1,n+1): os.write(1,str(i)+'\n') 14.8269
42 Python 3 for i in range(1,n+1): os.write(1,(str(i)+'\n').encode('utf-8')) 18.2189
43 Java System.out.println(i); 30.013
44 C# 6.0 Console.WriteLine(i); 30.1438