일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- DP
- 스택
- 그래프
- 코딩
- 컴공과
- 백준
- 북리뷰
- vector
- 컴공
- cs
- 정석학술정보관
- OS
- 브루트포스
- 너비우선탐색
- 코테
- 컴퓨터공학과
- coding
- 자료구조
- 문제풀이
- 구현
- Computer science
- 오에스
- bfs
- 개발
- Stack
- c++
- Operating System
- 알고리즘
- 오퍼레이팅시스템
- 정석
- Today
- Total
목록Python (9)
Little Jay
사실 머리로 생각만 하면 간단한 문제인데 코드로 구현하려고 하니까 조금은 복잡한 문제였다. def solve(): A=[0, 0, 1, 8, 2, 2, 8, 9, 0, 3, 4, 0, 0] A.sort() i= A.count(0) if len(A) 2: count+=(A.pop()+A.pop())*i i*=10 count+=sum(A)*i return count
마스크를 쓰지 않고는 밖을 다니면 안 되는 코로나19 시대입니다. 코로나19가 장기화되면서 코로나 블루라는 말이 나올 정도로 우울한 사람들이 많아지고 있습니다. 세계적인 전기자동차 회사 경영자인 '얼른 마스크'씨는 자신의 전기자동차를 타는 고객들이 조금이라도 행복할 수 있기를 바라며 판매하는 전기자동차 번호판 일련번호 4자리를 행복 수(happy number)로 채우고자 합니다. 행복 수는 각 자릿수의 제곱의 합으로 변환하는 과정을 반복할 때 언젠가는 1에 도달하는 수입니다. 예로, 13 → 1x1 + 3x3 = 10 → 1x1 + 0x0 = 1이므로 13은 행복 수입니다. 행복 수가 아닌 것은 슬픈(sad) 수 또는 불행(unhappy) 수라고 불립니다. 예로, 4 → 4x4 = 16 → 1x1 + 6..
피보나치 수에 대한 문제입니다. 피보나치 수는 아래와 같이 정의됩니다. f(1) = 1 f(2) = 2 f(3) = f(1) + f(2) = 1 + 2 = 3 f(4) = f(2) + f(3) = 2 + 3 = 5 f(5) = f(3) + f(4) = 3 + 5 = 8 ... f(n) = f(n-2) + f(n-1), n>=3 a와 b라는 두 수가 주어져 있을 때 두 수 사이에는 몇 개의 피보나치 수가 있을까요? 예를 들어 10과 100 사이에는 총 5개(13, 21, 34, 55, 89)의 피보나치 수가 있고 모두 더한 값은 212입니다. 12345678999과 99987654321 사이에도 몇 개의 피보나치 수가 있습니다. 이 구간 내의 모든 피보나치 수를 더한 값이 기념품을 받을 수 있는 열쇠입니다..
소인수를 구하는 다양한 방법이 있지만 효율적인 알고리즘을 위해서라면 O(n) 시간 안에 구하는 것이 최적인 것 같다. 에라토스테네스 체에서 영감을 얻어 나누어 떨어질때 수를 나누어주면 해결될 것 같다. '''어떤 수를 소수의 곱으로만 나타내는 것을 소인수분해라 하고, 이 소수들을 그 수의 소인수라고 합니다. 예를 들면 13195의 소인수는 5, 7, 13, 29 입니다. 600851475143의 소인수 중에서 가장 큰 수를 구하세요. ''' num = 600851475143 denom = 2 target = [] while num > 0: if num % denom == 0: num /= denom target.append(denom) elif num == 1: break else: denom += 1 ..

1부터 5까지의 수를 영어로 쓰면 one, two, three, four, five 이고,각 단어의 길이를 더하면 3 + 3 + 5 + 4 + 4 = 19 이므로 사용된 글자는 모두 19개입니다. 1부터 1,000까지 영어로 썼을 때는 모두 몇 개의 글자를 사용해야 할까요? 참고: 빈 칸이나 하이픈('-')은 셈에서 제외하며, 단어 사이의 and 는 셈에 넣습니다. 예를 들어 342를 영어로 쓰면 three hundred and forty-two 가 되어서 23 글자, 115 = one hundred and fifteen 의 경우에는 20 글자가 됩니다. 프로젝트 오일러는 문제를 푼 사람만 입장 가능한 포럼이라는 곳이 존재하는데, 거기 있는 코드들을 보고 깜짝 놀랐다. 처음에는 selenium으로 htt..
객체 지향의 기둥 추상화(Abstraction) 캡슐화(Encapsulation) 상속(Inheritance) 다형성(Polymorphism) 1. Abstraction 파이썬 코드를 짤때는 추상화를 잘 설명을 해야합니다. 추상화는 이미 파이썬 자체에서 잘 되어있다고 볼 수 있을 것 같습니다. 이게 무슨 뜻이나면, 우리가 list 메소드를 쓸 때 append나 del 같은거는 처음 봤을 때 뭔지 모릅니다. 우리가 문법을 배워서 알면 되지만 처음 봤을때는 이게 어떤 뜻인지는 모르는것이죠. 하지만 이것이 대략적으로 어떤 기능을 하는지 직관적으로 유추를 할 수 있겠습니다. 우리가 사용자 정의의 클래스나 함수를 새로 만들었다면 우리의 코드를 읽는 다른 사람은 그게 정확히 뭘 의미하는지, 어떤 기능을 하는지 한눈..
동적 배열로 풀면 안되는 문제인 것 같다. 그냥 배열로 풀어야 정답으로 서버가 인정하는 것 같다. #include using namespace std; int main() { int n; cin >> n; int arr[101] = { 0, }; int x; int denied = 0; for (int i = 0; i > x; if (arr[x] == 1) denied++; else arr[x] = 1; } cout
피보나치 수열의 각 항은 바로 앞의 항 두 개를 더한 것이 됩니다. 1과 2로 시작하는 경우 이 수열은 아래와 같습니다. 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... 짝수이면서 4백만 이하인 모든 항을 더하면 얼마가 됩니까? def pibo(): fi = [1,2] for k in range(0, 4000001, 1): fi.append(int(fi[-1]) + int(fi[-2])) return fi print(pibo()) 시간이 많이 걸리는건 어쩔 수 없다!
10보다 작은 자연수 중에서 3 또는 5의 배수는 3, 5, 6, 9 이고, 이것을 모두 더하면 23입니다. 1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면 얼마일까요? result = 0 for k in range(1,1000): if k % 3 == 0 or k % 5 == 0: result += k k += 1 print(result) 사실 이 방법은 노가다로 푸는 것 등차 급수로 풀 수 있다고 하는데 계절 학기 끝나면 다시 풀어봐야겠다 이제 3학년이니까 열심히 코딩 해야지