분류 전체보기

·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/1267 1267번: 핸드폰 요금 동호가 저번 달에 이용한 통화의 개수 N이 주어진다. N은 20보다 작거나 같은 자연수이다. 둘째 줄에 통화 시간 N개가 주어진다. 통화 시간은 10,000보다 작거나 같은 자연수이다. www.acmicpc.net [풀이] [코드] if __name__ == '__main__': n = int(input()) time_li = [int(x) for x in input().split()] ys = 0 ms = 0 for i in time_li: ys += (i//30 + 1) * 10 ms += (i//60 + 1) * 15 if ys < ms: print("Y", ys) elif ys == ms: prin..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net [풀이] 전에 풀었던 문제들에 비해 너무 쉬웠다. 풀이 설명할 것도 없음.. -_- [코드] if __name__ == '__main__': n = int(input()) i = 2 while n != 1: if n % i == 0: n /= i print(i) i = 2 continue i += 1
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net [풀이] 처음에는 키 순으로 정렬 후 뭐 어찌어찌 풀어갈까 해서 코드를 짜던 중.. 생각해보니 정렬을 할 필요가 없는 것.. 왜 복잡도만 늘어나게 정렬을 하려 했지?? 과거의 내가 이해가 되지 않는다.. 이렇게 하나둘씩 배워가는 거겠지 하하 ^0^ 나름 간단한 코드가 완성되었는데 다행히도 맞았다!.. 예제를 입력했을 때 student_li = [(55, 185), (58, 1..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/17496 17496번: 스타후르츠 1, 11, 21, 31, 41 일에 스타후르츠 씨앗을 심으면 됩니다. 51일에 심으면 61일에 수확이 가능한데 여름은 60일까지 이므로 61일에는 수확할 수 없습니다. 따라서 총 5 * 300 = 1500개의 스타후르츠를 수확 www.acmicpc.net [풀이] 원래는 자바로 백준을 풀었어서 Python 외부 라이브러리를 사용할 수 없는지 몰랐다 ㅎㅎ 대표적으로 numpy를 사용해서 ModuleNotFoundError가 난다고 하는데 나는 sympy를 사용해서 런타임오류가 났다. 방정식 부분만 외부 모듈을 사용하지 않게 코드 수정 중 어이없게도 진짜 간단하게 풀 수 있었다.. 이렇게 비효율적인 코드라..
·문제풀이/BOJ
[문제] https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net [풀이] 1. 최대공약수 (GCD: Greates Common Divisor) 최대공약수를 구할 때 반복문을 사용해 알고리즘을 짰었는데 언뜻 봐도 시간복잡도가 O(n)이나 된다.. 시간복잡도를 줄일 다른 알고리즘을 찾아보니 유클리드 호제법(Euclidean algorithm)이 있었다!! 유클리드 호제법(Euclidean algorithm) 원리 : a, b의 최대공약수 == b와 a%b의 최대공약수 -> GCD(a, b) = GCD(b, a%b) a%b..
서채리
'분류 전체보기' 카테고리의 글 목록 (26 Page)