Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
Archives
Today
Total
관리 메뉴

Kanghyeon Kim's Development

[Basic_IO] Python 입출력 1. 기본 print, input 본문

Algorithm (feat. Baekjoon Online Judge)

[Basic_IO] Python 입출력 1. 기본 print, input

Kanghyeon Kim 2022. 4. 10. 21:57

관련 백준 문제: 2557, 1000, 2558, 10950, 10951, 10952, 10953, 11021, 11022, 11718, 11719, 11720, 11721, 2741, 2742, 2739, 1924, 8393, 10818, 2438, 2439, 2440, 2441, 2442, 2445, 2522, 2446, 10991, 10992

+) fast I/O: 

github: https://github.com/zero0kkh/Problem-Solving-with-Baekjoon/tree/main/Basic/Basic_IO

 

GitHub - zero0kkh/Problem-Solving-with-Baekjoon: The solutions of the selected problems in Baekjoon Online Judge will be recorde

The solutions of the selected problems in Baekjoon Online Judge will be recorded here. - GitHub - zero0kkh/Problem-Solving-with-Baekjoon: The solutions of the selected problems in Baekjoon Online J...

github.com


PS를 떠나서 모든 프로그래밍, 코딩의 기초가 되는 입출력부터 천천히 새로 시작해보자.

결국 프로그래밍, 알고리즘이란 어떠한 입력(Input)을 받았을 때(특정 문제 상황)에서 우리가 원하는 출력(Output)을 만들어내는 것을 목적으로 하기 때문에, 모든 것의 시작은 입력을 받아서 출력하는 것 (I/O; Input/Ouput)부터 시작된다.

INPUT -> [PROGRAM/ALGORITHM] [1]-> OUTPUT

먼저 모든 프로그래밍의 기본이 되는 "Hello World"를 보면 (백준#2557) 다음과 같다.

print("Hello World")

python에서의 출력은 그 어떤 언어보다 간단하다. 단순히 출력하고 싶은 내용을 print()안에 넣어주면 된다. 여기서 내가 python이 가장 인간친화적이고 유사 pseudo code라고 하는 이유가 확연하게 보이는데, 비교를 위하여 아래에 Java, C언어로 같은 알고리즘을 구현한 것을 참고해주길 바란다.

//C언어
#include <stdio.h>
int main()
{
    printf("Hello, world!\n");
    return 0;
}
//Java
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

하지만 조금 더 나아가 python의 print를 자세히 알아보자.

 

+)여기서 입문자들을 위해, 앞으로의 프로그래밍에 도움이 될 습관을 하나 하자면,

코딩을 하던 중 인터넷에서 새로운 함수 혹은 객체를 사용하거나, 지금까지 그냥 교보재에 나와있어서 따라 쓰고 있던 함수가 있다면, python documentation [2]에서 찾아서 읽어보는 것을 추천한다.

단순히 기본 기능을 쓰는 것보다, 내가 모르고 있던 활용법들(parameter들)을 알 수도 있고

구현되어 있는 방식을 알아가면서 python (python이 추구하는 디자인 철학), 객체 지향 언어에 대한 이해도가 높아질 수 있다.

 

python documentation을 확인해보면 아래와 같이 나온다. (https://docs.python.org/3/library/functions.html#print)

 

 

 

COMMENTs

[1] 프로그램과 알고리즘의 차이.

알고리즘은 특정 문제를 해결하는 방법, 그 과정을 말하며 추상적인 개념이다. 그에 반해 프로그램은 이러한 알고리즘이 코드, 컴퓨터 언어로 구현된 것을 말한다. 즉 어떤 문제에 대해서 알고리즘을 생각해서 표현하는 방법은 다양한데(순서도 등) 이 중 하나가 프로그램인 것이다.

 

[2] Python documentation 이용하기.

흔히 우리가 말하는 python은 파이썬 소프트웨어 재단에서 만들어서 배포하는 CPython을 말하며 그 구현이 https://github.com/python/cpython 에 공개되어 있다. 그리고 매번 새로운 버전을 배포할 때마다 그 버전에 해당하는 official documentation을 배포하는데(https://docs.python.org/3/), 여기에는 그 버전에서의 standard library에 대한 설명이 포함되어 있다.(https://docs.python.org/3/library/index.html) 우리가 흔히 쉽게 import해서 사용하거나, 새로운 라이브러리의 import없이 사용하는(built-in) 모든 것들이 소스코드와 함께 그 구현에 대해서 설명이 친절하게 되어 있으며, 사실 그 어떤 블로그, 사이트의 설명보다도 신뢰도가 높은 official한 정보이다. 따라서 특정 함수에 대해서 알고 싶다면 위의 사이트에서 찾아보거나, 아래 사진과 같이 구글에 "python documentation ???"로 검색한다면 가장 상단에 결과가 나올 것이다. 이렇게 모든 함수에 대해서 documentation을 읽어나간다면, 알고리즘 설계 능력과 별개로 python이란 언어에 대해선 전문가가 되어 있을 것이고 이는 python을 PS를 하든 다른 개발을 하든 그 속도를 월등히 증가시켜줄 것이다.

 

Comments