본문 바로가기

Today I Learned

21/09/16

모두를 위한 컴퓨터 과학 (CS50 2019) - 배열, 알고리즘


8) 명령형 인자 = command-line argument

#include <cs50.h>
#include <stdio.h>

int main(int argc, string argv[]){
  if (argc == 2){
    printf("hello, %s\n", argv[1]);
  }else{
    printf("hello, world\n");
  }
}

 

main 함수는 인자를 2개 가지는데, int형 argc와 string 배열 argv이다.
argc는 입력받는 문자열 개수이고 argv는 입력받는 문자열이다.

위의 예제 코드는 입력받은 인자가 있으면 hello, argv[1] 라고 출력하고 인자가 없으면 hello, world 만 출력한다.
argc 변수를 2와 비교하고 있는데, 그 이유는…
우리가 프로그램을 실행할 때 커맨드라인에 ./exit David 라고 입력한다.
이때 인자를 David 하나만 입력한 것이라고 생각하기 쉽지만, 사실 ./exitDavid 2개를 입력한 것이다.
첫번째 인자는 argv[0] 에 저장되고 두번째 인자는 argv[1]에 저장된다.

생각해보기

명령행 인자를 사용하면 프로그램 내부 코드에 따로 변수를 저장하지 않아도, 프로그램 실행 때부터 인자를 입력받기 때문에 편리하다.




1) 검색 알고리즘
아직 정렬되지 않은 배열이 있다면, 선형 검색이 빠르다. 정렬되어 있지 않다면 이진 검색은 의미가 없고 검색을 진행할 때마다 뱡향이 바뀔테니 선형 검색보다 시간만 더 걸릴 수 있다.


2) 알고리즘 표기법
Big-O : 알고리즘을 수행하는데 필요한 시간의 상한선. 손짓으로 대략적인 속도감을 표현하는 것이라고 보면 된다!

Big-O의 O는 on the order of의 약자로 ~만큼의 정도로 커지는 이라는 의미를 가진다.

Big-O 영어로 읽는 방법
O(n) = Order of n.
O(n/2) = Order of n over two.
O(logN) = Order of log n.

Big-Ω (Omega) : 최상의 방법. 실행시간의 하한선.

생각해보기

실행시간의 상한이 낮은 알고리즘이 더 좋다. 즉, Big-O 알고리즘이 더 좋다. 최악의 경우까지 생각했을 때, 그 경우의 수가 낮은 것이 더 좋다.




일본어 문법 무작정 따라하기

1과 명사의 보통체형 단어 복습
2과 명사의 정중체형 강의 학습

'Today I Learned' 카테고리의 다른 글

21/09/19  (0) 2021.09.19
21/09/18  (0) 2021.09.18
21/09/14  (0) 2021.09.14
21/09/12  (0) 2021.09.13
21/09/08  (0) 2021.09.08