PYTHON91 python으로 로또 번호 뽑기 이 글을 작성하는 시점은 토요일 오후 시간이다. 점심 즈음에 '토요일이니까 로또 사야지' 하는 생각을 하다가, 로또 번호를 내가 그냥 하는 것보단, 개발자스럽게 코옴퓨타께서 점지해 주시는 번호로 로또를 구매하는 것이 좋지 않을까라는 생각이 들었다. 그래서 일단 로또와 관련된 api가 있는지 확인해봤다. 오 있다. 로또 API https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo=회차번호 위 주소로 들어가서 회차번호에 지금까지 있었던 회차번호를 입력하면 관련한 숫자가 입력된 정보값을 json으로 받을 수 있다. 아래처럼 나온다. { "totSellamnt": 126617296000, "returnValue": "success", "drwNoD.. 2024. 2. 17. 프로그래머스 Lv2 전력망을 둘로 나누기 (python) 전력망을 둘로 나누기 풀이 사실 어떻게 풀어야 하는지 도저히 감이 안 와서 결국 남의 힘을 빌렸다. 처음에는 일단 행렬을 만들고 dfs나 bfs로 풀어야 한다는 것은 알았지만, 구현을 어떻게 해야 하는지 답이 안 나와서 힘을 빌려 아래처럼 제출했다. def solution(n, wires): # 각 송전탑을 연결하는 인접 리스트 생성 graph = [[] for _ in range(n+1)] for a, b in wires: graph[a].append(b) graph[b].append(a) # 각 송전탑에 연결된 예하 송전탑의 노드 수를 계산 count = [0] * (n+1) def dfs(node, parent): for child in graph[node]: if child != parent: d.. 2024. 2. 16. 프로그래머스 Lv2 연속 부분 수열 합의 개수 (python) 연속 부분 수열 합의 개수 풀이 푸는 것은 어떻게 풀면되겠다는 생각은 들었지만, 맨 끝 인덱스에서 다음 인덱스로 넘어가는 과정에 대해서 고민하는데 시간이 오래 걸렸다. 아래의 코드를 추가하려고 머리를 잠깐 굴렸기 때문이다. 이게 맞나?? 하고 말이다. if j+i > N: sum_value += sum(elements[j:]) sum_value += sum(elements[:i+j-N]) for 문을 2개를 사용하면서 슬라이싱과 같이 사용했다. 첫번째 for문은 연속하는 갯수인 1~N개에 대해서 두번쨰 for문은 연속하는 갯수에 해당하는 만큼의 합을 구하기 위한 반복문으로 사용했다. 아래처럼 풀이했다. def solution(elements): answer = [] N = len(elements) # 연.. 2024. 2. 15. 프로그래머스 Lv2 가장 큰 수 도움말 (python) 가장 큰 수 풀이 어째 풀지 계속하다가 풀었다. 근데 하나가 계속 틀려서 보니 질문하기에서 테스트 케이스 한 개를 던져줘서 다행히 풀었다. [0,0,0] 이면 "0" 이 나와야하는데 아무래도 "000"을 출력해서 그런가 보다. 그래서 모든 숫자가 0일 때 0을 반환하게 해 주었다. def solution(numbers): # 모든 숫자가 0인지 확인 if all(num == 0 for num in numbers): return "0" # 문자열로 변환 numbers = list(map(str, numbers)) # 두 숫자를 이어붙였을 때 큰 수가 되도록 정렬 numbers.sort(key=lambda x: x*3, reverse=True) answer = ''.join(numbers) return an.. 2024. 2. 15. 백준 실버4 18110.solved.ac (python) solved.ac 풀이 풀었는데 계속해서 무슨 문제가 있어서 틀렸습니다. 가 나오는지 몰라서 이것저것 해보다가 2 1 4 를 넣어보니 3이 아닌 2가 나오는 것을 보고, 아... round에서 문제가 생겼구나 싶어서 round함수를 내 입맛에 맞게 바꿔주고 아래처럼 풀었다. # 어떤 문제의 난이도는 그 문제를 푼 사람들이 제출한 난이도 의견을 바탕으로 결정 # 아직 아무의견이 없다면 문제의 난이도는 0으로 결정 # 의견이 하나 이상 있다면, 문제의 난이도는 모든 사람의 난이도 의견의 30% 절사평균으로 결정 # 절사평균 가장 큰 값과 가장 작은 값들을 제외하고 평균 # 고로 30% 절사 평균은 위에서 15%, 아래에서 15%를 제외하고 평균을 계산 # 제외 해야할 사람이 소수일경우 반올림한다. # 평균도.. 2024. 2. 14. 백준 실버5 1676.팩토리얼 0의 개수 성공 (python) 팩토리얼 0의 개수 성공 풀이 문제가 이해가 되진 않았지만, 우선 팩토리얼값이 필요하니 팩토리얼 구하는 함수를 만들어주고 이를 이용해 줬다. def factorial(a): if a == 0: return 1 else: return a * factorial(a-1) 그러고 나서 대입해 보니 무슨 말인지 이해가 되었다. 10!이라면 이 값의 뒤에서 0이 몇 개 있는지 세는 문제이다. 3628800이 10!인데 뒤에 0이 2개 달렸다. 이를 구해주기만 하면 된다. # N!에서 뒤에서부터 처음 0이 아닌 숫작 ㅏ나올 때까지 0의 갯수를 구하는 프로그램을 작성하시오. # N이 주어짐 def factorial(a): if a == 0: return 1 else: return a * factorial(a-1) N .. 2024. 2. 14. 이전 1 ··· 3 4 5 6 7 8 9 ··· 16 다음