Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions 지민/week6/12925.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Level 1 - 문자열 정수로 바꾸기
def solution(s):
return int(s)

# 다른 풀이 - 알고리즘 공부용 풀이
def strToInt(str):
result = 0
for idx, number in enumerate(str[::-1]):
if number == '-':
result *= -1
else:
result += int(number) * (10 ** idx)
return result
15 changes: 15 additions & 0 deletions 지민/week6/12931.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Level 1- 자릿수 더하기
def solution(n):
answer = 0
while (n > 0):
answer += n % 10
n //= 10
return answer

# 다른 풀이 - 재귀 사용
def sum_digit(number):
'''number의 각 자릿수를 더해서 return하세요'''
if number < 10:
return number

return number%10 + sum_digit(number//10)
17 changes: 17 additions & 0 deletions 지민/week6/D1/1545.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import sys
sys.stdin = open("input.txt", "r")

input_num = int(input())
while (input_num >= 0):
print(input_num, end=' ')
input_num -= 1

# 다른 풀이 - 왜인지 이 풀이가 더 실행시간이 빠르다!
n = int(input())
answer = []
for i in range(n + 1):
answer.append(n)
n -= 1

for j in range(len(answer)):
print(answer[j], end=' ')
21 changes: 21 additions & 0 deletions 지민/week6/D1/1933.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import sys
sys.stdin = open("input.txt", "r")

input_num = int(input())
answers = []

i = 1
while i <= input_num:
if input_num % i == 0:
answers.append(i)
i += 1
for nums in answers:
print(nums, end=' ')

# 다른 풀이
n = int(input())
answer = []
for i in range(1,n+1) :
if n % i == 0 :
answer.append(i)
print(*answer)
27 changes: 27 additions & 0 deletions 지민/week6/D1/1936.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
a, b = map(int, input().split())
if (a == 1 and b == 2) or (a == 2 and b == 3) or (a==3 and b == 1):
print('B')
else:
print('A')

# 다른 풀이 - 리스트 사용
A, B = map(int, input().split())
# 가위, 바위, 보
# 1 2 3
win = [0, 3, 1, 2]

if A == B:
print('비김')
elif win[A] == B:
print('A')
else:
print('B')

#다른 풀이 2 - 뺼셈 값으로 정답 반환
A , B = map(int,input().split())
answer = ''
if A-B == 1 or B-A == 2:
answer = 'A'
elif B-A == 1 or A-B == 2:
answer = 'B'
print(answer)
19 changes: 19 additions & 0 deletions 지민/week6/D1/1938.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import sys
sys.stdin = open("input.txt", "r")

a, b = map(int, input().split())
sum_result = a + b
minus_result = a - b
multiply_result = a * b
division_result = a // b
print(sum_result)
print(minus_result)
print(multiply_result)
print(division_result)

# 다른 풀이
a, b = map(int, input().split())
print(a+b)
print(a-b)
print(a*b)
print(a//b)
19 changes: 19 additions & 0 deletions 지민/week6/D1/2019.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import sys
sys.stdin = open("input.txt", "r")


total = int(input())
init = 1
print(1, end=' ')
for _ in range(1, total+1):
print(2*init, end=' ')
init = 2*init

# 다른 풀이 - 더 깔끔하다
N = int(input())

result = 1

for i in range(N + 1):
print(result, end=' ')
result *= 2
10 changes: 10 additions & 0 deletions 지민/week6/D1/2025.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
rounds = int(input())
sum = 0
for i in range(1, rounds+1):
sum += i
print(sum)

# 다른 풀이 - list 활용
n = int(input())
n1 = list(range(1, n+1))
print(sum(n1))
2 changes: 2 additions & 0 deletions 지민/week6/D1/2027.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
for i in range(0, 5):
print('+'*i+'#'+'+'*(4 - i))
21 changes: 21 additions & 0 deletions 지민/week6/D1/2029.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# import sys
#
# sys.stdin = open("input.txt", "r")

T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
a, b = map(int, input().split())
div, mod = divmod(a, b)
print(f'#{test_case} {div} {mod}')

# 다른 풀이 - 내장함수 없는 버전, 다른 출력 형태
T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
a, b = map(int, input().split())

quotient = a // b
remainder = a % b

print('#{0} {1} {2}'.format(test_case, quotient, remainder))
8 changes: 8 additions & 0 deletions 지민/week6/D1/2043.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# P 비밀번호
# K부터 1씩 증가
P, K = map(int, input().split())
print(P - K + 1)

# 다른 풀이 - 예외 처리까지!
P, K = map(int, input().split())
print(P-K+1 if P>K else P+1000-K)
16 changes: 16 additions & 0 deletions 지민/week6/D1/2050.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# import sys
#
# sys.stdin = open("input.txt", "r")

strings = input()
strings = list(strings)
for i in range(len(strings)):
print(f'{ord(strings[i]) - 64}', end=' ')

# 다른 풀이 - 아스키코드 값 활용
if __name__ == '__main__':
alphabet = input()
alphabet = list(alphabet)

for i in alphabet:
print(f"{ord(i) - 64}", end=' ')
25 changes: 25 additions & 0 deletions 지민/week6/D1/2056.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# import sys
#
# sys.stdin = open("input.txt", "r")

T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
raw_dates = list(input())
year = ''.join(raw_dates[0:4])
month = ''.join(raw_dates[4:6])
date = ''.join(raw_dates[6:8])
if int(year) < 0:
print(f"#{test_case} -1")
elif int(month) > 12 or int(month) < 1:
print(f"#{test_case} -1")
elif int(date) > 32 or int(date) < 1:
print(f"#{test_case} -1")
elif int(month) == 2 and int(date) > 28:
print(f"#{test_case} -1")
# if int(month) in [1,3,5,7,8,10,12]: 이렇게도 표현 가능!
elif (month == 4 or 6 or 9 or 11) and int(date) > 30:
print(f"#{test_case} -1")
else:
print(f"#{test_case} {year}/{month}/{date}")

16 changes: 16 additions & 0 deletions 지민/week6/D1/2058.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# 각 자릿수 합 구하기
inputs = int(input())
sum = 0
while (inputs > 0):
sum += inputs % 10
inputs //= 10
print(sum)

# 다른 풀이 - 문자열 돌면서 숫자 변환해서 더하기
# 첫줄 의미는 모르겠음..
if __name__ == "__main__":
arr = input()
sum = 0
for i in arr:
sum += int(i)
print(sum)
15 changes: 15 additions & 0 deletions 지민/week6/D1/2063.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import sys
sys.stdin = open("input.txt", "r")

rounds = int(input())
numbers = list(map(int, input().split()))
numbers = sorted(numbers)
print(numbers[(rounds + 1) // 2 - 1])

# 다른 풀이 - 그냥 //를 써버리면 된다. 어차피 인덱스는 1 뺴주니까
T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
a=list(map(int, input().split()))
a.sort()
mid=int(T//2)
print(a[mid])
15 changes: 15 additions & 0 deletions 지민/week6/D1/2068.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# import sys
# sys.stdin = open("input.txt", "r")

T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
numbers = map(int, input().split())
print(f'#{test_case} {max(numbers)}')

# 다른 풀이 - 다른 표현 방식
T = int(input())

for test_case in range(1, T + 1):
nums = map(int, input().split())
print("#%d %d" % (test_case, max(nums)))
14 changes: 14 additions & 0 deletions 지민/week6/D1/2070.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# import sys
# sys.stdin = open("input.txt", "r")

T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
a, b = map(int, input().split())
if a < b:
answer = '<'
elif a > b:
answer = '>'
else:
answer = '='
print('#{0} {1}'.format(test_case, answer))
11 changes: 11 additions & 0 deletions 지민/week6/D1/2071.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# import sys
# sys.stdin = open("input.txt", "r")

T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
nums = list(map(int, input().split()))
sum = 0
for num in nums:
sum += num
print(f'#{test_case} {round(sum / len(nums))}')
24 changes: 24 additions & 0 deletions 지민/week6/D1/2072.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# import sys
# sys.stdin = open("input.txt", "r")

T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
numbers = map(int, input().split())
sum = 0
for nums in numbers:
if nums % 2 != 0:
sum += nums
print(f'#{test_case} {sum}')

# 다른 풀이 - array 활용, 실행시간 더 빠름
n = int(input())
array = [0] * n
for i in range(n):
data = list(map(int, input().split()))
for j in range(10):
if data[j] % 2 != 0:
array[i] += data[j]

for i in range(n):
print(f"#{i + 1} {array[i]}")
6 changes: 6 additions & 0 deletions 지민/week6/D1/input.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
5
22220228
20150002
01010101
20140230
11111111
15 changes: 15 additions & 0 deletions 지민/week6/D2/1204.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# import sys
#
# sys.stdin = open("input.txt", "r")

T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
rounds = int(input())
scores = list(map(int, input().split()))
scores_set = list(set(scores))
frequency = []
for i in range(len(scores_set)):
frequency.append(scores.count(scores_set[i]))
max_index = frequency.index(max(frequency))
print(f"#{rounds} {scores_set[max_index]}")
19 changes: 19 additions & 0 deletions 지민/week6/D2/1859.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# import sys
#
# sys.stdin = open("input.txt", "r")

# 배열 끝을 최댓값으로 설정, 앞으로 오면서 최댓값과의 차이를 비교(최댓값 갱신일 떄는 계산 안 함)

T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
days = int(input())
answer = 0
costs = list(map(int, input().split()))
max_cost = costs[-1]
for i in range(days-2, -1, -1):
if max_cost <= costs[i]:
max_cost = costs[i]
else:
answer += max_cost - costs[i]
print(f"#{test_case} {answer}")
Loading