[Python] 백준 2693번 N번째 큰 수
·
알고리즘
문제 배열 A가 주어졌을 때, N번째 큰 값을 출력하는 프로그램을 작성하시오. 배열 A의 크기는 항상 10이고, 자연수만 가지고 있다. N은 항상 3이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 배열 A의 원소 10개가 공백으로 구분되어 주어진다. 이 원소는 1보다 크거나 같고, 1,000보다 작거나 같은 자연수이다. 출력 각 테스트 케이스에 대해 한 줄에 하나씩 배열 A에서 3번째 큰 값을 출력한다. 예제 입력 1 4 1 2 3 4 5 6 7 8 9 1000 338 304 619 95 343 496 489 116 98 127 931 240 986 894 826 640 965 833 136 138 940 955 364 ..
[Python] 백준 2609번 최대공약수와 최소공배수
·
알고리즘
문제 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다. 출력 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. 예제 입력 1 24 18 예제 출력 1 6 72 풀이 최대공약수(GCD) = 약수 중 공통이며 가장 큰 수 최소공배수(LCM) = 각각의 배수 중 공통이며 가장 작은 수 a, b = map(int, input().split()) # 최대 공약수 a_gcd = [i for i in range(1, a+1) if a % i == 0] b_gcd = [i for i in range(1..
[Python] 백준 2309번 일곱 난쟁이
·
알고리즘
문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 입력 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. 출력 일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난쟁이를 찾을..
[Python] 백준 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번째 피보나치 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n이 주어진다. n은 20보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄에 n번째 피보나치 수를 출력한다. 예제 입력 1 10 예제 출력 1 55 풀이 재귀 함수를 사용해 풀이 def fibo(n): ..
[Python] 백준 2460번 지능형 기차2
·
알고리즘
문제 최근에 개발된 지능형 기차가 1번역(출발역)부터 10번역(종착역)까지 10개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. 이 장치를 이용하여 출발역에서 종착역까지 가는 도중 기차 안에 사람이 가장 많을 때의 사람 수를 계산하려고 한다. 단, 이 기차를 이용하는 사람들은 질서 의식이 투철하여, 역에서 기차에 탈 때, 내릴 사람이 모두 내린 후에 기차에 탄다고 가정한다. 내린 사람 수 탄 사람 수 1번역 (출발역) 0 32 2번역 3 13 3번역 28 25 4번역 17 5 5번역 21 20 6번역 11 0 7번역 12 12 8번역 4 2 9번역 0 8 10번역(종착역) 21 0 예를 들어, 위와 같은 경우를 살펴보자. 이 경우, ..
[Python] 백준 10818번 최대, 최소
·
알고리즘
문제 N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. 출력 첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다. 예제 입력1 5 20 10 35 30 7 예제 출력1 7 35 풀이1 max, min 함수 사용 n = int(input()) num = list(map(int, input().split())) # max, min 함수 사용시 print(min(num), max(num)) 풀이2 내장 함수 사용하지 않고 구현 n ..
[Python] 백준 2501번 약수 구하기
·
알고리즘
문제 어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다. 6을 예로 들면 6 ÷ 1 = 6 … 0 6 ÷ 2 = 3 … 0 6 ÷ 3 = 2 … 0 6 ÷ 4 = 1 … 2 6 ÷ 5 = 1 … 1 6 ÷ 6 = 1 … 0 그래서 6의 약수는 1, 2, 3, 6, 총 네 개이다. 두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. 출력 첫째 줄에 N의 약수들 중 K번째로 작은 수를 출력한다. 만일 N의 약수의 개수가 K개보다 적어서 K번째 약수가 존재하지 않을 경우에는 0을 출력..
[Python] 백준 3460번 이진수
·
알고리즘
문제 양의 정수 n이 주어졌을 때, 이를 이진수로 나타냈을 때 1의 위치를 모두 찾는 프로그램을 작성하시오. 최하위 비트(least significant bit, lsb)의 위치는 0이다. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다. (1 ≤ T ≤ 10, 1 ≤ n ≤ 106) 출력 각 테스트 케이스에 대해서, 1의 위치를 공백으로 구분해서 줄 하나에 출력한다. 위치가 낮은 것부터 출력한다. 예제 입력1 1 13 예제 출력1 0 2 3 풀이1 t = int(input()) # 테스트 케이스 수 # 풀이 1번 for i in range(t): ans = [] n = int(input())# 숫자 n을 입력 while n >= 1:# n..
[GIT] LF will be replaced by CRLF in
·
Error
git에 .gitignore 파일을 작성한 후 git add 를 해주니 다음과 같은 에러 메세지가 발생하였다. warning: LF will be replaced by CRLF in .gitignore. 1. LF(Line-Feed)란? - Mac, Linux 등 Unix 계열의 줄바꿈 문자열(\n) 이다. - 커서 위치는 그대로 두고 종이의 한 라인 밑으로 내려가는 동작 (=현재 위치에서 바로 아래로 이동) 2. CR(Carraige-Return) - Mac 초기 모델 줄바꿈 문자열(\r) - 커서 위치를 맨앞으로 옮기는 동작 3. CRLF(Carriage-Return + Line-Feed) - Windows, DOS 줄바꿈 문자열 (\r\n) - CR과 LF의 동작을 합친 것 - 커서를 다음 라인 맨..
.gitignore 파일
·
Git
.gitignore 파일이란, 사용자가 원하지 않는 파일들 즉, Git 버전 관리에서 제외할 목록을 지정하는 파일이다. Git을 이용하다 보면 git에서는 올려서는 안 되거나 올리고 싶지 않을 파일들이 존재한다. 물론, 원하지 않는 파일들은 커밋하지 않으면 되지만 일일이 커밋에서 제외하기에는 귀찮고 불필요한 행동이다. 따라서, .gitignore 파일에 그런 파일들을 모두 넣어 관리해 줄 수 있다.. 1. gitignore 파일 생성 vi .gitignore git bash 에서 위 명령어를 실행하면 .gitignore를 생성할 수 있다. 그럼 .gitignore 파일에는 어떤 내용을 넣어 주어야 할까? 정답은 git의 추적을 피하고 싶은 파일명들이다. 만약 dismiss.md 파일을 git에서 제외시키..