목차
TIL
- 알고리즘 강의 1-3 ~ 1-6
- 백준 10817
- 백준 2455
TIL
오늘, 갑작스럽게 결과 발표가 나서, 계획한 만큼 못했다. 다시 초연하게 천천히 꾸준하게 나아가자. blank 프로젝트에 쏟은 시간은 1~2시간 정도이고, notion 페이지를 만드는데, 꽤나 많은 시간을 보냈다. notion, 정말 알면 알수록 좋은 것 같다.
알고리즘 강의 1-3 ~ 1-6
다시 복습을 하면서 많이 도움이 되는 것 같다. 조건문에서는 가령 and라던지(습관상 &로 사용했었다), 0 < x < 7 처럼 사용 가능하다던지, 그리고 반복문에서는 for else 문에서는 else가 for문에 종속되어서, break 되는 경우 else를 거치지 않는 것을 뿐만 아니라 continue를 만나면 해당 for문의 i 값을 넘어가는 것을 배웠다.
별 찍기에서는 print안에 end를 넣어서 편하게 구현할 수 있다는 점, (내가 풀었을 때 end를 넣는 것을 생각못했었다) 복습을 하면서 많은 부분을 다시 배우는 것 같다.
Sec.1-3 조건문(if분기문, 다중if문)
'''
조건문 if(분기, 중첩)
'''
x = 7
if x == 7:
print("Lucky")
print("ㅋㅋ")
x = 5
if x != 7:
print("Lucky")
print("ㅋㅋ")
'''중첩 if문'''
x = 15
if x >= 10:
if x % 2 == 1:
print("10이상의 홀수")
x = 12
if x >= 10:
if x % 2 == 1:
print("10이상의 홀수")
x = 9
if x >= 10:
if x % 2 == 1:
print("10이상의 홀수")
x = 10
if x > 0:
if x < 10:
print("10보다 작은 자연수")
x = 7
if x > 0 and x < 10:
print("10보다 작은 자연수")
# 파이썬에서만 허용
x = 7
if 0 < x < 10:
print("10보다 작은 자연수")
'''if 분기문'''
x = 10
if x > 0:
print("양수")
else:
print("음수")
x = -3
if x > 0:
print("양수")
else:
print("음수")
'''다중 if 문'''
# 하나가 걸리면 조건문 전체를 빠져나온다
x = 93
if x >= 90:
print('A')
elif x >= 80:
print('B')
elif x >= 70:
print("C")
elif x >= 60:
print("D")
else:
print("F")
# if문의 경우는 각각 따로 실행된다
x = 93
if x >= 90:
print('A')
if x >= 80:
print('B')
if x >= 70:
print("C")
Sec.1-4 반복문(for, while, break, continue)
'''
반복문(for, while)
'''
a = range(10)
print(list(a))
a = range(1, 11)
print(list(a))
'''for문'''
for i in range(10):
print("hello")
for i in range(10):
print(i)
for i in range(1, 11):
print(i)
# 아무일도 안 일어남
for i in range(10, 0):
print(i)
# 더하는 값을 지정해준다
for i in range(10, 0, -1):
print(i)
'''while문'''
i = 1
while i <= 10:
print(i)
i = i + 1
i = 10
while i >= 1:
print(i)
i = i - 1
'''break'''
# break을 쓰게되면 해당 반복문을 빠져나오게 된다
i = 1
while True:
print(i)
if i == 10:
break
i += 1
i = 1
while True:
print(i)
if i == 5:
break
i += 1
'''continue'''
# 어떤 것을 건너 뛰고 싶을 때 continue를 쓴다
for i in range(1, 11):
# if문 조건이 참일 때 for문을 건너 뛴다
if i % 2 == 0:
continue
print(i)
'''for else 구문'''
# 정상적인 종료가 아니고 break로 종료하게 되면 else문을 거치지 않는다
for i in range(1, 11):
print(i)
if i == 5:
break
else:
print(11)
# 정상적인 종료일 경우(break로 종료 X), else문을 거친다
for i in range(1, 11):
print(i)
if i > 15:
break
else:
print(11)
Sec.1-5 반복문을 이용한 문제 풀이
'''
반복문을 이용한 문제풀이
1) 1부터 N까지 홀수출력하기
2) 1부터 N까지의 합 구하기
3) N의 약수출력하기
'''
# 내가 푼 답
# 1) 1부터 N까지 홀수출력하기
n = int(input())
for i in range(1, n + 1):
if i % 2 == 1:
print(i)
# 2) 1부터 N까지의 합 구하기
n = int(input())
total = 0
for i in range(1, n + 1):
total += i
print(total)
# 3) N의 약수출력하기
n = int(input())
for i in range(1, n + 1):
if n % i == 0:
print(i)
# 강사님 답안
# 값을 받아오고 출력해보자
# n = int(input())
# n 까지이기 때문에 n + 1을 해준다
n = int(input())
for i in range(1, n + 1):
print(i)
# 1) 1부터 N까지 홀수출력하기
n = int(input())
for i in range(1, n + 1):
if i % 2 == 1:
print(i)
# 2) 1부터 N까지의 합 구하기
n = int(input())
sum = 0
for i in range(1, n + 1):
sum = sum + i
# for문이 끝난 후 출력!
print(sum)
# 3) N의 약수출력하기
n = int(input())
for i in range(1, n + 1):
# n에 i로 나눈 나머지가 0인 값은 n의 약수이며 약수 값은 i가 된다
if n % i == 0:
print(i, end=' ')
Sec.1-6 중첩 반복문(2중 for문)
'''
중첩 반복분(2중 for문)
'''
for i in range(5):
for j in range(5):
print(j, end=' ')
print()
for i in range(5):
print('i: ', i, sep='', end=' ')
for j in range(5):
print('j: ', j, sep='', end=' ')
print()
# 별 찍기 5 * 5
for i in range(5):
for j in range(5):
print("*", end=' ')
print()
# 별 찍기 1 2 3 4 5 *
for i in range(5):
for j in range(i + 1):
print("*", end=' ')
print()
# 별 찍기 5 4 3 2 1 *
for i in range(5):
for j in range(5 - i):
print("*", end=' ')
print()
백준 10817 세 수
https://www.acmicpc.net/problem/10817
쉬운 문제였다. 배열로 받고 sort 하고 1번째 인덱스 값 출력하면 끝! sort가 정말 강력한 내장 함수인 것 같다. c라면 모두 구현해야 하는데...
a, b, c = map(int, input().split())
_arr = [a, b, c]
_arr.sort()
print(_arr[1])
문제 풀이 시간 36 초
백준 2455 지능형 기차
https://www.acmicpc.net/problem/2455
강력한 내장 함수 max를 쓰니 가볍게 해결할 수 있었다. 각각의 output, input값을 받아서, 해당 배열에 계속 추가해준다. 변수 하나를 사용하여 계속 값을 넣어주었다.
_output_1, _input_1 = map(int, input().split())
_output_2, _input_2 = map(int, input().split())
_output_3, _input_3 = map(int, input().split())
_output_4, _input_4 = map(int, input().split())
_arr = []
person_num = _input_1
_arr.append(person_num)
person_num = person_num + _input_2 - _output_2
_arr.append(person_num)
person_num = person_num + _input_3 - _output_3
_arr.append(person_num)
person_num = person_num + _input_4 - _output_4
_arr.append(person_num)
result = max(_arr)
print(result)
문제 풀이 시간 4분 47초
'Today I Learned' 카테고리의 다른 글
[TIL] PS 강의 Sec.01-7 / 문자열과 내장함수, 백준 2440, 백준 5622 다이얼 런타임 에러 [21-11-05] (0) | 2021.11.06 |
---|---|
[TIL] 백준 2750 [21-11-04] (0) | 2021.11.04 |
[TIL] 파이썬 알고리즘 문제풀이 강의 시작 / Sec.01-1~2, Sec.02-1 K번째 약수, 백준 10872 팩토리얼 [21-11-02] (0) | 2021.11.02 |
[TIL] 백준 15552, 프로그래머스 12935 [21-11-01] (0) | 2021.11.01 |
[TIL] 백준 1110 [21-10-31] (0) | 2021.10.31 |