[파이썬 / 백준 3084] 사탕게임 브루트포스... 조금 성가시다. 어쨌든 아래와 같이 코딩을 짰는데, 한번만 움직이는거라 정말 다행이라고 생각했다 ... from sys import stdin input=stdin.readline def check(arr): ans=0 n=len(arr) for i in range(n): cnt=1 ex=1 for j in range(1,n): if arr[i][j]==arr[i][j-1]: cnt+=1 else: cnt=1 if ans Baekjoon Case 2021.12.14 0
[파이썬 / 백준 17427 번] 약수의 합 2 처음에는,, N보다 작은 자연수의 약수를 하나씩 구해서 다 더한값을 리턴하는걸로 동적계획법을 사용해서 코딩을 했는데 당연히 시간초과가 났다. 어쨌든 수학 카테고리에 있는거니까, 아마 동적계획법과는 상관 없을거라고 생각하고, 하나씩 풀어서 해봤다. 한 10까지 해 보니까 약수의 합이라고 하는게 결국은 n을 1부터 나누었을때의 몫을 다 더하면 되는거였다. 예를들어서 n이 6이라고 했을때, 1은 6번(1*6) 2는 3번(2*3) 3은 2번(3*2) 4는 1번(4*1) 5는 1번(5*1) 6은 1번(6*1) 다 더하면 33이 나온다. 실제로 약수를 구하면 1:1 2: 1,2 3: 1,3 4: 1,2,4 5: 1,5 6: 1,2,3,6 이렇게 되는데 나오는 횟수가 결국은 n을 나누어 나온 몫이라는것을 알 수 있다.. Baekjoon Case 2021.12.10 0
[파이썬 / 백준 4375 번] 1 이렇게 풀어도 되나 싶지만.. 간단하게 풀 수 있으니까 뭐.. while True: try: n=int(input()) except EOFError: break a='1' while True: temp=int(a) if temp%n==0: print(len(a)) a='1' break else: a=a+'1' 처음에는 입력값을 마무리를,.. 어떻게 하지..? 이랬는데, 예외처리를 하라는 뜻이었다. Baekjoon Case 2021.12.09 0
[파이썬 / 백준 1655 번] 가운데를 말해요 처음에 문제를 이해하는데도 시간이 걸렸다.. 결국 SORTING 해서 중간에 있는 값을 찾아야 하는건데, 입력값이 계속 들어올 때 마다 SORTING 을 해 주어야 알 수 있을 것 같다. 그래서 처음에는 입력값을 받을때마다 sort 를 했는데 역시나 시간초과.. 아마 내가 모르는 모듈을 써야 할 것 같아서 찾아봤는데 heap 을 사용해서 코딩을 짜야 하는 것이었다. 사실 그동안 heap 이라는걸 들어만 보고 구체적으로 어떻게 사용하는 건줄 몰랐는데, 생각보다 매우 간편하고, 이런 sorting 문제에 활용 하면 좋을 것 같다. from sys import stdin import heapq input=stdin.readline T=int(input()) left=[] right=[] ans=[] for i.. Baekjoon Case 2021.12.08 0
[파이썬 / 백준 5355 번] 화성수학 T=int(input()) for _ in range(T): NL=list(input().split()) ans=float(NL[0]) for i in range(1,len(NL)): if NL[i]=='@': ans*=3 elif NL[i]=='%': ans+=5 elif NL[i]=='#': ans-=7 print('%.2f'%ans) Baekjoon Case 2021.12.07 0
[파이썬 / 백준 3084] 사탕게임 브루트포스... 조금 성가시다. 어쨌든 아래와 같이 코딩을 짰는데, 한번만 움직이는거라 정말 다행이라고 생각했다 ... from sys import stdin input=stdin.readline def check(arr): ans=0 n=len(arr) for i in range(n): cnt=1 ex=1 for j in range(1,n): if arr[i][j]==arr[i][j-1]: cnt+=1 else: cnt=1 if ans Baekjoon Case 2021.12.14 0
[파이썬 / 백준 17427 번] 약수의 합 2 처음에는,, N보다 작은 자연수의 약수를 하나씩 구해서 다 더한값을 리턴하는걸로 동적계획법을 사용해서 코딩을 했는데 당연히 시간초과가 났다. 어쨌든 수학 카테고리에 있는거니까, 아마 동적계획법과는 상관 없을거라고 생각하고, 하나씩 풀어서 해봤다. 한 10까지 해 보니까 약수의 합이라고 하는게 결국은 n을 1부터 나누었을때의 몫을 다 더하면 되는거였다. 예를들어서 n이 6이라고 했을때, 1은 6번(1*6) 2는 3번(2*3) 3은 2번(3*2) 4는 1번(4*1) 5는 1번(5*1) 6은 1번(6*1) 다 더하면 33이 나온다. 실제로 약수를 구하면 1:1 2: 1,2 3: 1,3 4: 1,2,4 5: 1,5 6: 1,2,3,6 이렇게 되는데 나오는 횟수가 결국은 n을 나누어 나온 몫이라는것을 알 수 있다.. Baekjoon Case 2021.12.10 0
[파이썬 / 백준 4375 번] 1 이렇게 풀어도 되나 싶지만.. 간단하게 풀 수 있으니까 뭐.. while True: try: n=int(input()) except EOFError: break a='1' while True: temp=int(a) if temp%n==0: print(len(a)) a='1' break else: a=a+'1' 처음에는 입력값을 마무리를,.. 어떻게 하지..? 이랬는데, 예외처리를 하라는 뜻이었다. Baekjoon Case 2021.12.09 0