본문 바로가기

알고리즘 공부

(207)
[백준 파이썬] #2981: 검문 https://www.acmicpc.net/problem/2981 2981번: 검문 트럭을 타고 이동하던 상근이는 경찰의 검문을 받게 되었다. 경찰은 상근이가 운반하던 화물을 하나하나 모두 확인할 것이기 때문에, 검문하는데 엄청나게 오랜 시간이 걸린다. 상근이는 시간 www.acmicpc.net [오답] → 시간 초과 아무리 해도 시간 초과가 나온다,, 나중에 다시 시도해보도록,,,
[백준 파이썬] #11051: 이항 계수2 https://www.acmicpc.net/problem/11051 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 이 문제는 의 연장선 문제이다. 자세한 설명은 이전에 풀었던 11050번 풀이를 참고하면 된다. https://heewon9809.tistory.com/179 백준 #11050 https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net ★ 먼저 이항계수가 무엇인가? 이를 읽어보면 이.. hee..
[백준 파이썬] #11050: 이항 계수1 https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net ★ 먼저 이항계수가 무엇인가? 이를 읽어보면 이항계수를 구하는 공식이 있다. 이것을 참고해서 문제를 풀면 된다! 그리고 공식을 보면 팩토리얼을 사용한다는 것을 알 수 있다. math모듈의 factorial함수를 사용하면 될 것 같다! [정답] 1. 이항계수에 사용되는 N과 K를 입력받는다. 2. math모듈의 factorial함수를 import하고 위의 공식을 참고하여 계산을 한 다음 값을 출력한다. factorial 구하는 방법 2가지 https://blog.naver...
[백준 파이썬] #3036: 링 https://www.acmicpc.net/problem/3036 3036번: 링 출력은 총 N-1줄을 해야 한다. 첫 번째 링을 제외한 각각의 링에 대해서, 첫 번째 링을 한 바퀴 돌리면 그 링은 몇 바퀴 도는지 기약 분수 형태 A/B로 출력한다. www.acmicpc.net [정답] 1. 링의 개수를 입력받아 n에 넣어준다. 2. 링의 개수만큼 링의 반지름을 입력받아 정수값으로 바꾸고 리스트형태로 rings에 넣어준다. 3. 0~n-1만큼 for문을 돌면서 첫 번째 링(rings[0])을 한 바퀴 돌리면 (i+1)번째 링은 몇 바퀴 도는지 기약 분수 형태 A/B로 출력하기 위해 fractions 모듈의 Fraction 클래스를 사용한다. ※ Fraction(rings[0],rings[i+1])만 해주..
[백준 파이썬] #2609: 최대공약수와 최소공배수 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net [정답] 1. while문을 돌면서 a,b를 input()으로 받는다. 빈칸을 기준으로 split()해주고 map()을 통해 a,b를 int로 형변환해준다. 2. 1~min(a,b)만큼 for문을 돌면서 a와 b로 모두 나누어지는 최대공약수를 GCD에 넣어준다. 3. a*b//GCD를 LCM(최대공배수)에 넣어준다. 4. GCD와 LCM와 출력한다.
[백준 파이썬] #5086: 배수와 약수 https://www.acmicpc.net/problem/5086 5086번: 배수와 약수 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. www.acmicpc.net [정답] 1. while문을 돌면서 a,b를 input()으로 받는다. 빈칸을 기준으로 split()해주고 map()을 통해 a,b를 int로 형변환해준다. 2. 만약 a와 b가 모두 0일때, while문을 빠져나가 프로그램을 종료한다. 3. 만약 ab이고 a%b==0이면 즉 "첫 번째 숫자가 두 번째 숫자의 배수이다."에 해당하면 "multiple"을 출력한다. 5. 3,4번에 모두 해당하지 않으면 즉 "첫 번째 숫자가 두 번째 숫자의 ..
[백준 파이썬] #3009: 네 번째 점 https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net [정답] 1. x좌표와 y좌표를 담을 리스트를 정의한다. 2. 세 점이 주어지니까 3번을 반복하면서 input을 받는다. input을 받으면서 공백을 기준으로 split하여 a,b에 넣어준다. 3. 만약 a가 리스트 x에 없다면, x에 a를넣어준다. 리스트 x에 있다면, x에서 a를 제거해준다. b도 동일한 방법으로 진행한다. → 이 문제는 축에 평행한 직사각형을 만드는 프로그램이다. 그러므로 네 점은 각 2개씩 x좌표가 같고, 또 다른 각 2개씩 y좌표가 같을 것이다. ex)..
[프로그래머스] JadenCase 문자열 만들기 https://programmers.co.kr/learn/courses/30/lessons/12951 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 programmers.co.kr [오답] → '코드실행' 100%, '제출 후 채점하기' 43.8% s를 공백 기준으로 나누어서 리스트안에 넣고, 문자열 하나하나 꺼내서 capitalize()함수를 이용해 첫글자를 대문자로 만들어주고 공백과 함께 answer에 넣어준다. 코드가 맞는 것 같은데 왜 틀렸다는지 모르겠어서 네이버에 검색해보..