본문 바로가기

알고리즘6

[파이썬 알고리즘 #5] 반복문 반복문에 대해서 알아보고자 한다. 반복문은 무엇인가? 말 그대로 반복을 하게 해 준다. 기계가 가장 잘하는 반복은 이 반복문에서 온다 봐도 무방하다. 간단하게 0부터 N까지 돌려주는 경우도 있고, list 안의 요소들을 불러올 수도 있다. 아니면 조건을 달아서 그 조건이 충족되지 않을 때까지 반복하는 경우도 있다. 앞의 경우가 for문, 뒤의 경우가 while문이다. 이 둘은 비슷하지만 의미의 차이가 약간 존재한다. 반복문 1 : for문 for문의 핵심은 모든 요소를 돌린다는 것에 있다. 예를 들어 아래의 경우를 살펴보자. for i in range(5): # for i in range(0, 5, 1): print(i) # Result 0 1 2 3 4 이 코드는 for문의 아주 핵심적이며 기초적인 r.. 2022. 8. 10.
[파이썬 알고리즘 #4] 조건문 이번엔 조건문에 대해서 다뤄보고자 한다. PS에 도움 되는 스킬도 적어보고자 한다. 조건문은 무엇인가? 간단히 말해, 특정 조건을 만족할 때에 추가로 실행하고 싶은 것을 돌리게 하는 일종의 트리거 장치다. 조건 $ A $의 경우엔 실행문 $ a $의 절차를 밟아야 하고, 조건 $ B $의 경우엔 실행문 $ b $로 돌려야 할 때 쓰인다. 이때 필요한 구문은 if - else문이다. 조건문이 참이냐 거짓이냐에 따라서 로직을 나누게 해 준다. 예시 : [BOJ] 1330번 두 수 비교하기 [BOJ] 1330번 두 수 비교하기 문제 - [풀이] 이 문제가 매우 정석적인 if - else문을 쓰는 문제다. a와 b 크기를 구분하는 아주 쉬운 문제다. if a > b: print('>') elif a < b: p.. 2022. 8. 4.
[파이썬 알고리즘 #3] 기본 입출력 - 입력 기본 입출력 중 입력에 대해서 다룬다. 이번 글에서는 PS에서 입력으로 고생했던 것들을 위주로 적어볼 예정이다. 프로그래밍에서의 입력은 어떤 의미일까? PS, 그리고 프로그래밍의 핵심은 입력과 출력이 있고, 그 사이의 함수를 알고리즘으로 채우는 것이다. 고등학생 때 $ f(x) = y $ 라는 수식을 본 적이 있을 것이다. $ x $는 입력(정의역), $ y $는 출력(치역), $ f $는 함수다. 이 관계를 알고 있다면 PS랑 프로그래밍에 대해서 조금 더 쉽게 접근이 가능하지 않을까 싶다. 감히 말하지만, 거의 모든 PS와 프로그래밍은 이 $ f(x) = y $의 수식에서 벗어날 일이 없다! 단지 함수를 만들어내는 게 어려울 뿐이다. 참고로 입력과 출력은 있을 수도 없을 수도 있지만, 이런 경우엔 "빈.. 2022. 7. 21.
[파이썬 알고리즘 #2] 기본 입출력 - 출력 기본 입출력에서 가장 먼저 출력에 대해 다뤄보고자 한다. 아마 입력과 출력을 하나씩 분배해서 쓰면 딱 알맞은 분량의 글이 하나씩 나올 것 같다. 이번 글부터는 PS를 하면서 시행착오를 겪었던 부분들에 대해서 많이 다룰 것이다. 출력을 입력보다 먼저 배우는 이유는? 간단하게 말하면, 입력보다 출력이 쉬워서다. 진짜다. (...) 출력의 경우, 파이썬에서는 print()만으로 출력이 끝나며, C에서는 printf() 함수를, C++에서는 cout을 쓰면 된다. 그 뒤 또는 사이에 우리가 보고자 하는 변수를 넣기만 하면 그만이다. 그러면 프롬프트에서 그 결과를 바로 볼 수 있다. 하지만 입력의 경우엔 우리가 신경 써줘야 할 부분이 출력보다 매우 많아지게 된다. 프롬프트에 우리가 직접 입력하는 간단한 방법이면 .. 2022. 7. 10.
[파이썬 알고리즘 #1] 기본 입출력 - 들어가기 앞서 대망의 첫 번째 글이다. 일단 이 블로그에 쓰는 글의 주요 타겟층은 어느 정도 배운 초보 - 중수쯤에 뒀다. 내가 고수가 아니라서... 그리고 글의 스타일은 너무 코딩 이야기만 하진 않으면서 재미를 약간 추구하고자 한다. 물론 핵심은 꼭 짚을 것이다. 어떤 주제로 글을 써야 할지 많이 고민했다. 그리고 파일 입출력을 첫 주제로 잡았다. 그 이후의 순서는 아마도 백준 안에 있는 단계별로 풀어보기를 적절히 참고해서 따라갈 것이다. 입출력이 왜 중요한가? 너무나 당연한 진리이지만, 프로그램을 짤 때 가장 기초가 되는 부분은 입출력이다. 개발자라면 입력과 출력을 설정할 줄 알아야 하고, 그 입력과 출력 간의 관계를 알고리즘화 하여 코딩해야 한다. 적어도 내가 아는 선에선 그렇다. 따라서 알고리즘을 코딩하기 위해.. 2022. 7. 8.
[파이썬 알고리즘 Prologue] 아무리 생각해도 나는 코딩 초보다 내 인생을 몇 번 곱씹어봐도 나는 코딩 초보밖에 되지 않는다고 생각한다. 지금도 그렇게 생각한다. 이걸 지독하게 느낀 때가 대학교 2학년 2학기 파일처리론을 들었을 때다. 2016년 때 일이다. C언어로 했던 기억이 나는데, 파일을 직접 불러오고, 포인터를 이용해서 swap하고, 다시 저장하는 과제가 첫 번째였다. 다행히 2학년 1학기 때 열심히 자료구조를 듣고 과제를 다 내서 과제 제출 마감 30분 전에 냈던 기억이 난다. 하지만 그 과목에서 제대로 낸 과제는 그거 하나뿐이었다. B+ 트리를 갑자기 짜라니... C로 짜라는 hash는 너무 어려웠고, 마지막 과제는 트라이(Trie)였다. 난 결국 첫 번째를 제외한 다른 모든 과제들은 기본 점수만 받았고, 대학교에 와서 처음으로 좌절했다. 이 과목 말고도.. 2022. 7. 7.
728x90