본문 바로가기

전체 글

(123)
2. 숫자만 추출 # 숫자만 추출 def run(s): # import re # a = re.findall("\d+", s) # n = int("".join(a)) n = 0 # 숫자 추출 for ch in s: if ch.isdecimal(): n = n*10 + int(ch) cnt = 0 # 약수 개수 for i in range(1, n+1): if n % i == 0: cnt += 1 return n, cnt s = input() n, cnt = run(s) print(n) print(cnt)
1. 회문 문자열 검사 # 1. 회문 문자열 검사 def run(s): s = s.lower() if s == s[::-1]: return "YES" else: return "NO" def run(s): s = s.lower() for i in range(len(s)//2): if s[i] != s[-1-i]: return "NO" return "YES" T = int(input()) for i in range(T): s = input() ans = run(s) print(f"#{i+1} {ans}")
10. 점수계산 # 점수계산 def run(N, a): scores = [0] * N if a[0] == 1: scores[0] = 1 for i in range(1, N): if a[i] == 1: scores[i] = scores[i-1] + 1 return sum(scores) def run(N, a): score, tot = 0, 0 for x in a: if x == 1: score += 1 tot += score else: score = 0 return tot # 총점 N = int(input()) a = list(map(int, input().split())) print(run(N, a))
9. 주사위 게임 # 주사위 게임 def reward(a): a.sort() if len(set(a)) == 1: return 10000 + a[0] * 1000 elif len(set(a)) == 2: return 1000 + a[1] * 100 else: return a[2] * 100 N = int(input()) max_r = 0 for _ in range(N): a = list(map(int, input().split())) r = reward(a) max_r = max(max_r, r) # 최대 리워드 print(max_r)
8. 뒤집은 소수 # 뒤집은 소수 def reverse(x): x = str(x) x = x[::-1] return int(x) def reverse(x): res = 0 while x > 0: res = res * 10 + x % 10 x //= 10 return res def isPrime(x): if x == 1: return False i = 2 while i * i
7. 소수 (에라토스테네스 체) # 소수 def run(N): ck = [0] * (N+1) primes = [] for n in range(2, N+1): if ck[n] == 1: continue primes.append(n) for i in range(n*2, N+1, n): ck[i] = 1 return len(primes) # 소수의 갯수 N = int(input()) print(run(N))
6. 자릿수의 합 # 자릿수의 합 def run(nums): max_s, num = 0, 0 for n in nums: s = 0 for ch in str(n): s += int(ch) if s > max_s: # 최대일때 숫자 max_s = s num = n return num def run(nums): max_s, idx = 0, 0 for i, n in enumerate(nums): s = 0 while n > 0: s += n % 10 n //= 10 if s > max_s: # 최대일때 인덱스 max_s = s idx = i return nums[idx] N = int(input()) nums = list(map(int, input().split())) print(run(nums))
5. 정다면체 # 정다면체 def run(N, M): a = [0] * (N + M + 1) for i in range(1, N + 1): for j in range(1, M + 1): a[i+j] += 1 max_cnt, res = -1e9, [] for i, cnt in enumerate(a): if cnt > max_cnt: # 최대일때 숫자들 max_cnt = cnt res = [i] elif cnt == max_cnt: res.append(i) return res N, M = map(int, input().split()) ans = run(N, M) [print(x, end=" ") for x in ans]