전체 글 101

[백준/파이썬] 10870. 피보나치 수 5

문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. www.acmicpc.net/problem/10870 입력 첫째 줄에 n이 주어진다. n은 20보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄에 n번째 피보나치 수를 출력한다. 아이디어 다이나믹 프로그래밍의 대표예제 ..

[Python/파이썬] 리스트의 두 요소 위치 변경하기 (스와프,swap)

파이썬의 리스트 요소의 위치를 변경하고 싶을 때 사용하는 간단한 방법을 소개한다. #리스트의 0번째 요소와 3번째 요소의 값을 변경하고 싶다. array = [1,2,3,4,5] #스와프 array[0], array[3] = array[3], array[0] print(array) #[4,2,3,1,5] 만약에 리스트의 0번째 요소와 3번째 요소의 값을 변경하고 싶다면, 파이썬에서 사용하는 대입 연산자를 이용해 간단하게 표현이 가능하다. 코드를 해석해보자면 array의 0번째 요소에 3번째 요소를 넣고, array의 3번째 요소에 0번째 요소를 넣는다는 뜻. 호기심에 해봤는데 요소 3개도 위치 변경이 가능하다. array = [1,3,5,7] array[0], array[1] , array[3] = ar..

Study/Python 2021.02.10

[Python/파이썬] 리스트 요소추가 (append / insert / extend)

파이썬에서 '리스트' 는 다양한 자료형( 숫자, 문자열, 리스트 등)을 포함할 수 있는 만능 자료형이다. 이러한 리스트에 새로운 요소를 추가하려면 list 자료형에 딸려있는 append 메소드를 사용해야한다. append 메소드는 특징이 메소드의 인자를 하나만 받는다는 것이다. new_list = [0,1,2,3,4] new_list.append(5) print(new_list) #[0,1,2,3,4,5] 만약에 여러개의 요소를 넣고싶다면 아래와 같이 append메소드를 일일이 호출해서 사용해야한다. new_list = [0,1,2,3,4] new_list.append(5) new_list.append(6) new_list.append(7) print(new_list) #[0,1,2,3,4,5,6,7] ..

Study/Python 2021.01.27

[알고리즘 / Algorithm] chapter 3. Greedy Algorithm (그리디 알고리즘) -큰 수의 법칙

Greedy Algorithm (그리디 알고리즘) 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더해서 가장 큰 수를 만드는 법칙이 있다. 단, 배열의 특정한 인덱스에 해당하는 수가 연속으로 K번을 초과해 더해질 수 없다는 것이 특징이다. 입력조건 첫째 줄에 N(2≤ N ≤1,000) , M(1≤ M ≤10,000), K(1 ≤ K ≤10,000) 의 자연수가 주어지며 각 자연수는 공백으로 구분한다. 둘째 줄에 N개의 자연수가 주어진다. 각 자연수는 공백으로 구분한다. 단, 자연수는 1 이상 10,000이하의 수로 주어진다. 입력으로 주어지는 K는 항상 M보다 작거나 같다. 출력조건 첫째 줄에 큰 수의 법칙에 따라 더해진 답을 출력한다. 1. 주어진 수를 M번 더했을 때 가장 큰 수가 나오려면..

Study/Algorithm 2021.01.10

[알고리즘 / Algorithm] chapter 3. Greedy Algorithm (그리디 알고리즘)

Greedy Algorithm (그리디 알고리즘) 그리디 알고리즘은 매 순간 가장 좋아보이는 것을 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다. 그리디 알고리즘을 번역하면 '탐욕적인' 알고리즘이다. 여기서 '탐욕적' 이라는 말은 현재 상황에서 지금 당장 좋아보이는 것만 고르는 방법을 의미한다. 그리디 알고리즘은 문제의 유형이 매우 다양하기 때문에 암기해서 잘 푼다고 할 수 없다. 대신 많은 유형을 접해보고 문제를 풀어보며 훈련을 해야한다. 그리디 알고리즘은 기준에 따라 좋은 것을 선택하는 알고리즘이므로 문제에서 '가장 큰 순서대로' , '가장 작은 순서대로' 와 같이 기준을 은근슬쩍 제시해준다. 대체로 그리디 알고리즘은 정렬 알고리즘과 짝을 이뤄 출제가 된다. 예제 3-1 거스름..

Study/Algorithm 2021.01.04

[Python/Error] 파이썬 list 정렬 (sort / sorted)

파이썬에서 리스트의 요소를 정렬하는 방법은 대표적으로 두 가지가 있다. sort 메소드와 sorted 함수 이 둘의 차이점을 비교해보려고 한다. 1. sort() 메소드 - 리스트의 메소드이다. - return값이 없다. 위의 코드처럼 작성하면 반드시 에러가 난다. 에러가 나는 이유를 찾아보니 sort() 메소드는 return 값이 없기 때문이다. arr 변수가 받아서 사용할 return값이 없어 에러가 나는 것이다. 2. sorted() 함수 1. 함수이다. 메소드와 같이 클래스에 종속되어있지 않음. 2. sort()와 다르게 return 값이 존재한다. 위와 같은 코드를 작성하고 sorted () 함수를 사용하면 에러 없이 결과가 나온다. 이름, 역할이 비슷한데 왜 비슷한걸 하나 더 만들었을까.. 싶..

Study/Python 2021.01.02

[한빛미디어/나는리뷰어다] 이것이 우분투 리눅스다

학교에서 실습할 때 우분투 리눅스를 자주 사용한다. 3년정도 리눅스를 써보니까 익숙해지긴했는데 처음엔 검은 콘솔창에 명령어를 치는 건 굉장히 낯설었다. 교수님께서 강의시간마다 항상 혼자서 리눅스도 설치해보고 서버도 구축해볼줄 알아야한다고 말씀하셨다. 왜 중요한지도 알고 왜 해야하는지도 아는데 내 하나 뿐인 노트북에는 이미 윈도우가 설치가 되어있고.. 가난한 대학생에겐 리눅스를 설치할만한 굴러다니는 노트북 또한 없다. 그래서 지금까지 리눅스를 직접 설치하고 사용하는 방법을 미루뒀었다. 한빛미디어에서 새롭게 개정한 시리즈 중 이것이 우분투 리눅스다 는 나와 같은 고민으로 리눅스를 제쳐둔 사람들을 위한 책이다. 한 대의 노트북으로 4대의 가상머신을 생성해 실무에서도 사용가능한 리눅스를 배우고 익힐 수 있다. ..

Study/Review 2020.12.20

[한빛미디어/나는리뷰어다] 한 권으로 끝내는 딥러닝 텐서플로

학교에서 딥러닝 수업은 수강중인데, 아무래도 내용이 어려운 점이 많아 자습은 필수적이었다. 자습할 때 같이 볼 책이 필요했는데 서점에 가니 정말 다양한 딥러닝 관련 서적들을 볼 수 있었다. 책을 고를 때 나는 양이 부담스럽지 않으며, 코드에 대한 설명이 잘 되어 있는 책을 원했다. 그 중에서 발견한 딥러닝 책은 바로 이번에 리뷰하게 될 " 한 권으로 끝내는 딥러닝 텐서플로 " 책의 첫 표지부터 전문적인(?) 느낌이 났다. 두께는 내가 고려한 가장 중요한 기준 중 하나였는데, 이 책은 양 부분 에서는 너무 마음에 들었다. 총 263페이지이고 가벼워서 도서관이나 학교에 가지고 다니기 편했다. 챕터는 총 10개로 구성되어있고 유기적으로 연결되어 있다. 맨 처음은 모든 책들이 그렇듯, 소개로 시작한다. 딥러닝을..

Study/Review 2020.11.22

[Git/Pycharm/Python] Pycharm(파이참)에서 commit 취소하기

pycharm을 github에 연동해서 사용 중인데 가끔 github에 push가 되지 않는 파일들이 있다. 이유야 다양하겠지만 내가 종종겪는 push 거부 문제는 파일의 '사이즈가 너무 커서'였다. 100MB까지 github에 push가 가능하지만, 그 이상은 push 할 수 없다. 이미 commit 까지 완료했는데, 이제와서 push가 안된다고 하니 난감하기 그지없다... 구글링해보니 pycharm에서는 이전에 한 commit을 취소하고 commit하기 전 상태로 되돌려주는 기능이 있었다. 지금부터 그 방법을 소개한다. 1. 파이참을 킨 화면에서 왼쪽 하단을 보면 'git' 이라고 써져있는 메뉴가 있다. 이 메뉴는 파이참을 github(또는 다른 git 관리 사이트)와 연동하게 되면 뜨는 메뉴다. ▼..

Study/Git 2020.11.16