일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 마라마라빔
- 장고
- MyPlaylist
- 실습
- django
- Kruskal
- DP
- minimum spanning tree
- 동적계획법
- DFS
- 백준
- BFS
- 모각코
- codetree
- 파이썬
- 백트래킹
- 데이터베이스
- 코드트리
- 최소스패닝트리
- Bellman-Ford
- 프로그래머스
- programmers
- 종합설계
- 알고리즘
- 그리디알고리즘
- 함밥
- 소프트웨어공학
- SQL
- Planned
- B대면노래방
- Today
- Total
목록분류 전체보기 (242)
Leta Learns
팩토리얼 함수 만들고 뒤에서 부터 for문 돌려주면 되는 거라 그리 어렵지 않았다. 다음 주 부터는 조금 더 어려운 문제를 시도해볼까 싶은데... 더워서 아무것도 하기 싫다 ㅎㅎ 😥 import sys input = sys.stdin.readline def factorial(n): fac = 1 for i in range(1, n+1): fac *= i return fac n = int(input()) ans = factorial(n) strans = str(ans) cnt = 0 for i in range(len(strans)-1, -1, -1): if strans[i] == '0': cnt += 1 else: break print(cnt) #2022-08-06 math모듈 factorial 함수 사용..
문제 https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net import sys input = sys.stdin.readline def factorial(n): fac = 1 for i in range(1, n+1): fac *= i return fac n = int(input()) ans = factorial(n) strans = str(ans) cnt = 0 for i in range(len(strans)-1, -1, -1): if strans[i] == '0': cnt += 1 else: break print(cnt) #2022-0..
이분탐색 문제인데 그냥 하나씩 감소시키는 걸로 했다가 시간초과 났다. 이분탐색 기본 코드에서 거의 변한 게 없어서 금방 풀 수 있었다. import sys input = sys.stdin.readline k, n = map(int, input().split()) lan = [int(input()) for _ in range(k)] s = 1 e = max(lan) while s = n: s = mid + 1 else: e = mid - 1 print(e) 시간초과난 코드는 2022.07.27 - [Coding/백준] - [Python] 백준 1654번 - 랜선 자르기 여기서 볼 수 있음 [Python] 백준 1654번 - 랜선 자르기 문제 https://www.acmicpc.net/problem/1654..
문제 https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 이분탐색 안 하고 그냥 풀어도 되지 않을까.. 하는 희망을 가지고 풀었는데 시간초과 났다. ㅎㅎ 코드도 수정해보고 pypy3로도 해봤는데 안 돼서 결국 이분탐색으로 풀었다. #이분탐색코드 import sys input = sys.stdin.readline k, n = map(int, input().split()) lan = [int(input()) for _ in..
File - Settings- Keymap 에서 generate를 검색하면 해당하는 단축키를 찾을 수 있다. Windows의 Generate 단축키는 Alt + Insert
예전에 팰린드롬 문제로 실버 난이도를 풀은 적 있는 것 같다. 난이도가 달라서 그런지는 몰라도 일단 쉽게 풀었다. 근데 좀 더 간단한 코드로 짤 수 있는 방법이 있을 것 같은 느낌.. import sys input = sys.stdin.readline num = [] a = 1 while a != '0': a = input().strip() num.append(a) for i in num: pal = 1 if i == '0': break if len(i) % 2 == 0: #짝수 for j in range(len(i)): if i[j] != i[len(i)-j-1]: pal = 0 break if j == len(i) // 2: break else: for j in range(len(i)): if i[j..
문제 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 어렵게 생각했는데 생각해보니 그냥 1씩 추가하면서 666이 포함된 수를 찾으면 되는 문제였다. 수를 문자열로만 바꿔주면 된다. import sys input = sys.stdin.readline n = int(input()) ans = '666' cnt = 1 while cnt != n: intans = int(ans) intans += 1 ans = str(intans) if '666' ..
문제 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net DP 오랜만에 푸는 거라 정신 못 차렸다. 어떻게 풀어야 할 지 감이 안 잡혀서 알고리즘 분류 확인하고 디피 문제라는 걸 확인한 후에 풀었다. 디피 연습을 좀 해야할 것 같다. 간단한 코드 설명은 주석으로 적어놓았다. import sys input = sys.stdin.readline n= int(input()) dp = [0 for _ in range(n+1)] for i in range(2, n+1): dp[i] = dp[i-1] + 1 #일단 1은 무조건 빼놓고 (연산 3) if i % 3 == 0:..
우와 모각코 어게인 알고리즘 문제 안 푼 지 오래 됐더니.. 문제 보고 바로 그래프 문제구나 라고 떠올리는데 오래 걸렸다. 그래프로 푸는 건 바로 그려지긴 했는데 bfs로 풀어야겠다는 생각이 바로 들진 않았다. 자기 자신과의 단계는 0이므로 이를 표현하기 위해 visited의 초기값을 -1로 지정하였다. bfs함수를 호출하면 해당 사람(?)의 visited 값을 0으로 바꾸어준다. (자기자신) 한 번 방문할 때마다 이전에 방문한 친구의 단계에서 1을 더해준다. 케빈 베이컨 수는 모든 사람과 케빈 베이컨 게임을 했을 때 나오는 단계의 합이므로 bfs 함수 종료 전에 sum(visited)를 구해주었다. 그리고 함수에서 빠져나온 뒤 이를 ans 리스트에 넣는다. 모든 유저에 대해서 bfs 함수를 실행한 후에..
문제 https://www.acmicpc.net/problem/1389 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net 자기 자신과의 단계는 0이므로 이를 표현하기 위해 visited의 초기값을 -1로 지정하였다. bfs함수를 호출하면 해당 사람(?)의 visited 값을 0으로 바꾸어준다. (자기자신) 한 번 방문할 때마다 이전에 방문한 친구의 단계에서 1을 더해준다. 케빈 베이컨 수는 모든 사람과 케빈 베이컨 게임을 했을 때 나오는 단계의 합이므로 bfs 함..