알고리즘 문제 풀이
10869번
# 10869 번
input = input().split(' ')
num_a = int(input[0])
num_b = int(input[1])
print(num_a + num_b)
print(num_a - num_b)
print(num_a * num_b)
print(num_a // num_b)
print(num_a % num_b)
4673번
# 4673 번
def d(n):
n = n + sum(map(int, str(n))) # n = 2 -> 2 + 2 : 4 // n = 33 - > 33 + 3 + 3 : 39
# map 에서 int 로 데이터 타입을 지정했기 때문에 str(n) 도 나뉘고 int 가 된다.
return n
a = [0] * 10001 # a를 10000개의 원소를 가지고 있는 저장소로 만들어줍니다.
for i in range(1, 10001):
a[i] = d(i) # a[i] = d(i) // a[1] = d(1) : 2 이유 : 1 + 1은 2 // a[33] = d(33) : 39 이유 : 33 + 3+ 3 : 39
for i in range(1, 10001): # 셀프 넘버 확인을 위해 i 에 1 ~ 10000까지 넣어줍니다.
if i not in a: # 만약 i 가 a 에 포함 되지 않았다면
print(i) # i 를 프린트 합니다.
4344번
# 4344 번
n = int(input())
for i in range(n):
nums = list(map(int, input().split(' '))) # 첫 줄에 시험 개수 / 둘째 줄 처음에 학생 수 / 이후 점수를 입력합니다.
avg = sum(nums[1:]) / nums[0] # 처음으로 들어가는 nums 는 학생 수 이므로 [0]을 제외하고 더해준 후 / [0](학생 수)를 해줍니다.
cnt = 0 # 평균이 넘는 학생 수 저장소
for score in nums[1:]: # 점수를 넣어줍니다.
if score > avg: # 점수가 평균보다 크다면
cnt += 1 # cnt 를 +1 해줍니다.
rate = cnt / nums[0] * 100 # 평균이 넘는 학생을 학생수로 나누어 100을 곱해줍니다.
print(f"{rate:.3f}%")
2941번
# 2941 번
n = int(input())
for i in range(n):
nums = list(map(int, input().split(' '))) # 첫 줄에 시험 개수 / 둘째 줄 처음에 학생 수 / 이후 점수를 입력합니다.
avg = sum(nums[1:]) / nums[0] # 처음으로 들어가는 nums 는 학생 수 이므로 [0]을 제외하고 더해준 후 / [0](학생 수)를 해줍니다.
cnt = 0 # 평균이 넘는 학생 수 저장소
for score in nums[1:]: # 점수를 넣어줍니다.
if score > avg: # 점수가 평균보다 크다면
cnt += 1 # cnt 를 +1 해줍니다.
rate = cnt / nums[0] * 100 # 평균이 넘는 학생을 학생수로 나누어 100을 곱해줍니다.
print(f"{rate:.3f}%")
2884번
# 2884 번
input_num = input().split(' ')
hour = int(input_num[0])
min = int(input_num[1])
if hour > 0 and min < 45:
min += 60
hour -= 1
print(hour, min - 45)
elif hour <= 0 and min < 45:
hour = 23
min += 60
print(hour, min - 45)
elif hour < 0:
print(23, min - 45)
else:
print(hour, min - 45)
2588번
# 2588 번
num_a = int(input())
num_b = input()
first = num_a * int(num_b[2])
second = num_a * int(num_b[1])
third = num_a * int(num_b[0])
result = num_a * int(num_b)
print(first)
print(second)
print(third)
print(result)
1110번
# 1110 번
input_num = int(input())
num = input_num
cnt = 0
while True:
ten_num = num // 10 # 10의 자리수 반환 : 2 6 8 4
one_num = num % 10 # 1의 자리수 반환 : 6 8 4 2
sum_num = (ten_num + one_num) % 10 # 10의 자리 + 1의 자리를 더하고 10으로 나눈 나머지 반환
# 8 4 2 6
num = (one_num * 10) + sum_num # 1의 자리에 10을 곱한 후 sum_num 을 더한 값을 반환:
# 68 84 42 26
cnt += 1 # 1 2 3 4
if num == input_num: # False False False
break
print(cnt)
오늘은 항해 2주 차가 되는 날이다.
알고리즘은 역시 어려웠다....
실전 문제풀이에 가니 예상은 했지만 너무 어려워서.... 골치 아팠다.
많이 부족한 것을 느끼고 정말 열심히 해야겠다는 생각이 들었다.
지금은 많이 어렵지만 노력은 배신하지 않는다는 것을 믿어야겠다!
불가능은 없다!!
파이팅👍👍👍✍️✍️✍️
'알고리즘' 카테고리의 다른 글
TIL] 알고리즘 문제풀이 [백준] (1037, 2609, 10250) (0) | 2021.06.17 |
---|---|
TIL] 알고리즘 문제 풀이 [백준] (2941, 2839, 1436) (0) | 2021.06.16 |
TIL ] 스택 , 큐, 해쉬 (0) | 2021.06.13 |
TIL] (자료구조)링크드 리스트 (0) | 2021.06.13 |
TIL] 알고리즘 공부 (0) | 2021.06.12 |