Study 95

[C++/Visual Studio] 비주얼 스튜디오에서 git 사용하기

파이썬을 많이 쓰다보니까 IDE도 Pycharm에 이미 익숙해져 있었다. 그러다가 이번 학기부터 C++을 듣게 되어서 비주얼 스튜디오를 써야했다. 2학년땐가.. C 독학해보겠다고 설치한 이후로 써본적이 없어서 생초보초보다. github에 미리 수업을 위한 레포지토리를 만들어뒀었고, 비주얼 스튜디오에서 그걸 클론받아서 사용하려했음. 하지만 클론을 받으면 코드를 실행할 수 없었다.. 비주얼 스튜디오에서 .exe 파일을 찾을 수 없다고 하면서 실행이 안됐다.. 그래서 전략을 바꿨다. 1. 일단 기존의 깃허브 레포지토리는 삭제. 2. 비주얼 스튜디오에서 프로젝트를 먼저 생성 3. 그다음 비주얼 스튜디오에서 깃 레포지토리를 생성하자. 위 전략대로 시작! 1. Visual Studio에서 프로젝트 생성 오른쪽에서 ..

Study/C++ 2021.03.12

[Python/파이썬] 파이썬 입력받는 방법 with input()과 sys.stdin.readline()

백준 입출력 문제를 풀면서 가장 신경써야했던 부분은 '제한시간'이였다. 문제를 제대로 풀었어도 제한시간을 초과해버리면 오답이기 때문이다. 보편적으로 입력받는 방법은 input함수를 쓰는 방법이다. 나도 input()으로 입력을 받아 문제를 풀었는데 input은 시간이 오래걸려서 시간초과되기 십상이다. (특히 반복문을 써서 여러 줄을 입력받는 경우) input보다 속도가 더 빠른 방법은 없을까? 파이썬의 표준 라이브러리인 sys의 sys.stdin.readline()을 사용하면 더 빠르게 처리할 수 있다!! (sys란? sys 모듈은 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈이다.) 같은 문제라도 5달 전에 푼 문제는 count = int(input()) num = inp..

Study/Python 2021.03.09

[Linux/Ubuntu] 우분투 리눅스 사용자 추가하기

우분투 리눅스에서 root 말고 다른 사용자를 추가해보자. 1. 기본으로 설정된 계정으로 로그인 (root) 2. home directory로 이동 cd ~ 3. adduser 명령어로 사용자 추가 sudo adduser 원하는 user이름 #sudo adduser jimin 4. 패스워드 지정 5. 부가 정보 입력 만약 지정해줄 내용이 없다면 그냥 계속 enter치면 알아서 default 값으로 지정해준다. 만약 정보를 바꾸고 싶다면 usermod 명령어로 변경가능 6. user 가 제대로 생성되었는지 확인 ls 명령어는 해당 디렉토리의 하위 폴더, 파일을 모두 보여줌( 숨김파일 제외 , 숨김파일도 보고 싶으면 ls-al) ls /home/ 아까 adduser로 만든 이름이 있으면 성공! 7. 추가확인..

Study/Linux 2021.03.08

[백준/파이썬] 2839. 설탕배달

문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오 www.acmicpc.net/problem/2839 입력 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 출력 상근이가..

[백준/파이썬] 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