티스토리 뷰

반응형
 

2557번: Hello World

Hello World!를 출력하시오.

www.acmicpc.net

가장 기본적으로 Hello World를 출력한다.

이건 정말 쉬운 코드기에 자세한 설명은 넘어가겠다. print 함수를 쓰면 된다.

print("Hello World!")

 

그런데 제출하고 나서 의문이 들 것이다.

python에서 실행하면 아무리 빨라도 24ms나 20ms로 나온다.

하지만 다른 언어들을 보면 0ms가 대다수다.

이유가 무엇일까?

 

python은 interpreter 언어다.

이게 무슨 말이냐면 쉽게 말해서 신참 통역사가 중간에 있다고 생각하면 된다.

 

우리가 컴퓨터의 언어를 이해하려면 수없이 많은 0101을 읽어야 한다.

그런데 인간인 우리가 이걸 읽는 건 불가능하다. 그래서 통역사를 쓰는데, 그것이 프로그래밍 언어고, python은 그런 통역사 중에서도 신참이라 해석할때는 어버버 거린다고 생각하면 된다.

 

그러나 장점이 있는데, python은 우리 말은 정말 청산유수같이 알아듣는다. 그래서 번역할때 우리가 대충 말해도 찰떡같이 알아들어 명령을 수행한다. 하지만 역시 번역 시간은 오래 걸리는, 그런 종류의 통역사라고 생각하면 된다.

 

그럼으로서 장점은 코드가 간결해진다는 것이다. 대충 말해도 찰떡같이 알아들으니까, 그만큼 내가 명령할 것이 적어진다.

하지만 단점은 역시 시간이 느려진다는 것이다. 이에 따라 언어를 고를 때는 목적에 따라 언어를 고르는 것이 필요하다.

 

 <stdio.h>
 
main() {
	int a;
	scanf("%d", &a);	// 입력
	printf("%d", a);	// 출력
}

c언어는 각 문단마다 세미콜론(;)과 중괄호, 대괄호를 신경써줘야 한다.

또한 메모리 처리가 자동으로 되지 않기에 메모리 또한 사용자가 직접 지정해줘야 한다.

하지만 그만큼 빠르다.

 

그렇기에 게임같이 빠른 피드백을 원할 떄에는 C++이 적합하고, python이 적합하지 않다.

그러나 AI의 수많은 데이터를 처리할 때에는 행렬 연산으로 인해 코드가 정말 길어지기 때문에 간결화 할 수 있는 python이 적합한 것이다.

 

메모리를 자동으로 처리해주는 부분이 진짜 크다. python에서도 메모리를 사용자가 조절 할 수 있는 부분이 있지만, interpreter의 한계를 벗어나지는 못한다. 자료구조를 공부하면 이 부분에 대해 더 자세히 알 수 있을 것이다.

자신이 비전공자라면 자료구조를 꼭 공부하자.

반응형