🚀 I단원
프로그래밍의 개요
📖 프로그래밍 언어
📌 두 수의 차이 구하기 27_1.py
두 정수를 입력받아 큰 수에서 작은 수를 빼는 조건문 예제
📄 27_1.py
1
a = int(input())2
b = int(input())3
if a>b:4
t = a-b5
else:6
t = b-a7
print(t)8
9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 유클리드 최대공약수 27_2.py
while 반복문으로 유클리드 호제법을 구현하여 GCD를 구합니다
📄 27_2.py
1
a = int(input())2
b = int(input())3
4
while b!=0:5
t = b6
b = a%b7
a = t8
print(a)9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 프로그래밍 언어 소개 함수 37.py
C, C++, Java, Python 언어의 특징을 함수로 출력하는 예제
📄 37.py
1
def c():2
print("C의 특징")3
#C 특징 작성4
5
def cpp():6
print("C++의 특징")7
#C++ 특징 작성8
9
def java():10
print("Java의 특징")11
#Java 특징 작성12
13
def python():14
print("Python의 특징")15
#Python 특징 작성16
17
print("특징을 알고 싶은 프로그래밍 언어를 선택하세요.")18
print("1. C")19
print("2. C++")20
print("3. Java")21
print("4. Python")22
23
n = int(input())24
25
if n==1 :26
c()27
elif n==2 :28
cpp()29
elif n==3 :30
java()31
elif n==4 :32
python()33
else :34
print("잘못 선택했습니다.")35
36
37
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 절차와 알고리즘
📌 자료형 오류 체험 45_1.py
정수와 문자열을 더하면 오류가 발생하는 것을 확인합니다
📄 45_1.py
1
print(1+"1")2
3
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 문자열 반복 연산 45_2.py
숫자와 문자열의 곱셈으로 문자열을 반복하는 예제
📄 45_2.py
1
print(3*"hello")2
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📘 II단원
프로그래밍의 기초
📖 데이터 출력
📌 첫 번째 출력 47.py
print()로 'Hello'를 출력하는 가장 기본적인 예제
📄 47.py
1
print("Hello")2
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 두 단어 출력 48.py
print()에 여러 값을 전달하여 공백으로 구분해 출력합니다
📄 48.py
1
print("Hello", "World")2
3
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 구분자 sep 사용 49.py
sep=':'를 사용하여 숫자를 콜론으로 구분해 출력합니다
📄 49.py
1
print(13, 45, 29, sep=":")2
3
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 줄바꿈 출력 50.py
두 개의 print()로 각각 다른 줄에 출력하는 예제
📄 50.py
1
print("Hello")2
print("World")3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 end 매개변수 51.py
end=','로 줄바꿈 대신 쉼표를 넣어 한 줄로 이어 출력합니다
📄 51.py
1
print("A", end=",")2
print("B", end=",")3
print("C")4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 변수로 반복 출력 53.py
변수 s에 문자열을 저장하고 3번 출력하는 예제
📄 53.py
1
s = "Hello"2
print(s)3
print(s)4
print(s)5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 변수 값 변경 54.py
변수 n의 값을 0에서 1로 바꾸며 출력 결과가 변하는 것을 확인합니다
📄 54.py
1
n = 02
print(n)3
n = 14
print(n)5
print(n)6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 여러 변수 조합 출력 55.py
s1, s2, s3 세 변수를 다양한 순서로 출력합니다
📄 55.py
1
s1 = "Hello"2
s2 = "Python"3
s3 = "World"4
print(s1, s2, s3)5
print(s2, s3, s1)6
print(s3, s1, s2)7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 데이터 입력
📌 리스트 생성과 출력 56_1.py
숫자 리스트 [1,2,3,4,5]를 만들고 출력합니다
📄 56_1.py
1
d = [1, 2, 3, 4, 5]2
print(d)3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 리스트 역순 접근 56_2.py
인덱스를 이용하여 리스트를 역순으로 출력합니다
📄 56_2.py
1
d = [1, 2, 3, 4, 5]2
print(d[4], d[3], d[2], d[1], d[0])3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 전역/지역 변수 57.py
global 키워드로 전역 변수를 함수 안에서 변경하는 예제
📄 57.py
1
s = 0 #전역 변수 s2
3
def f(n): #함수 f( )의 매개 변수 n4
global s5
k = 0 #함수 f( ) 안의 지역 변수 k6
while k<n:7
k = k+18
s = s+k9
10
f(3)11
print(s)12
13
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 기본 입력 58.py
input()으로 값을 입력받아 그대로 출력하는 예제
📄 58.py
1
s = input()2
print(s)3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 두 줄 입력 59.py
두 번의 input()으로 각각 값을 입력받아 출력합니다
📄 59.py
1
s1 = input()2
s2 = input()3
print(s1)4
print(s2)5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 한 줄에 두 값 입력 60.py
split()으로 공백 기준 분리하여 두 변수에 저장합니다
📄 60.py
1
s1, s2 = input().split()2
print(s1)3
print(s2)4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 리스트로 분리 입력 61.py
split()의 결과를 리스트에 저장하고 인덱스로 접근합니다
📄 61.py
1
s = input().split()2
print(s[0])3
print(s[1])4
print(s[2])5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 정수 리스트 입력 62.py
map(int, ...)으로 여러 정수를 한 번에 입력받습니다
📄 62.py
1
d = list(map(int, input().split()))2
print(d[0], d[1], d[2], d[3], d[4])3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 콜론 구분 입력 63.py
':'를 구분자로 시:분:초를 분리하여 출력합니다
📄 63.py
1
h, m, s = input().split(':')2
print(h)3
print(m)4
print(s)5
6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 쉼표 구분 입력 64.py
','를 구분자로 여러 숫자를 분리하여 줄바꿈 출력합니다
📄 64.py
1
d = list(map(int, input().split(',')))2
print(d[0], d[1], d[2], d[3], d[4], sep='\n')3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 빈 줄과 출력 66_2.py
빈 줄이 있는 코드에서 print가 어떻게 실행되는지 확인합니다
📄 66_2.py
1
2
3
4
print("Hello")5
6
if True:7
print("World")8
9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 리스트 셔플 67.py
random.shuffle()로 이름 리스트를 무작위로 섞어 출력합니다
📄 67.py
1
import random2
names = input().split()3
random.shuffle(names)4
print(names)5
random.shuffle(names)6
print(names)7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 산술 연산
📌 덧셈 연산 70.py
두 정수의 덧셈 결과를 출력하는 기본 산술 예제
📄 70.py
1
print(123+456)2
3
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 나눗셈 연산 71.py
두 수를 입력받아 나눗셈 결과를 출력합니다
📄 71.py
1
a = input()2
b = input()3
a = int(a)4
b = int(b)5
print(a/b)6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 문자열 연결 72.py
두 문자열을 + 연산자로 연결하여 출력합니다
📄 72.py
1
s1, s2 = input().split()2
print(s1+s2)3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 문자열 반복 73.py
문자열에 정수를 곱하여 반복 출력하는 예제
📄 73.py
1
s = input()2
print(s*3)3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 비교 연산
📌 비교 연산 기초 75.py
두 수의 대소를 비교하여 True/False를 출력합니다
📄 75.py
1
print(123<456)2
3
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 같은지 비교 76.py
== 연산자로 두 값이 같은지 확인합니다
📄 76.py
1
a = input()2
b = input()3
a = int(a)4
b = int(b)5
print(a==b)6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 크기 비교 (실수) 77.py
float로 변환 후 <= 연산자로 비교합니다
📄 77.py
1
a = input()2
b = input()3
a = float(a)4
b = float(b)5
print(a<=b)6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 문자열 비교 78.py
두 문자열이 같은지 == 연산자로 비교합니다
📄 78.py
1
s1, s2 = input().split()2
print(s1==s2)3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 논리 연산
📌 not 연산 80.py
not 연산자로 비교 결과를 반전합니다
📄 80.py
1
print(not (123<456))2
3
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 같지 않은지 판별 81.py
not과 ==를 조합하여 두 수가 다른지 확인합니다
📄 81.py
1
a = input()2
b = input()3
a = int(a)4
b = int(b)5
print(not (a==b))6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 or 논리 연산 82.py
2의 배수 또는 3의 배수인지 or로 판별합니다
📄 82.py
1
n = int(input())2
print((n%2==0) or (n%3==0))3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 and 논리 연산 83.py
2의 배수이면서 3의 배수인지 and로 판별합니다
📄 83.py
1
n = int(input())2
print((n%2==0) and (n%3==0))3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 비트 연산
📌 비트 NOT (~) 85.py
비트 보수 연산 ~n의 결과를 확인합니다
📄 85.py
1
n = int(input())2
print(~n)3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 비트 OR (|) 86.py
두 수의 비트 OR 연산 결과를 확인합니다
📄 86.py
1
a = int(input())2
b = int(input())3
print(a|b)4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 비트 AND (&) 88.py
두 수의 비트 AND 연산 결과를 확인합니다
📄 88.py
1
a = int(input())2
b = int(input())3
print(a&b)4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 비트 XOR (^) 89.py
두 수의 비트 배타적 OR 연산을 수행합니다
📄 89.py
1
a = int(input())2
b = int(input())3
print(a^b)4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 왼쪽 시프트 (<<) 91.py
비트를 왼쪽으로 이동하여 값이 2배가 되는 것을 확인합니다
📄 91.py
1
n = int(input())2
k = int(input())3
print(n<<k)4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 오른쪽 시프트 (>>) 92.py
비트를 오른쪽으로 이동하여 값이 반으로 줄어듭니다
📄 92.py
1
n = int(input())2
k = int(input())3
print(n>>k)4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 비트 연산 곱셈 94.py
비트 AND와 시프트를 활용한 곱셈 알고리즘
📄 94.py
1
n = int(input())2
m = int(input())3
t = 04
while m>0: #반복 실행5
t = t+(n*(m&1))6
n = n<<17
m = m>>18
print(t)9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 선택 구조
📌 큰 수의 거듭제곱 96_1.py
2의 1000제곱을 계산하는 파이썬의 큰 수 처리
📄 96_1.py
1
print(2**1000)2
3
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 제곱근 계산 96_2.py
** 0.5로 제곱근을 구합니다
📄 96_2.py
1
print(2**(0.5))2
3
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 왈러스 연산자 := 96_3.py
입력과 동시에 변수에 저장하는 := 연산자 예제
📄 96_3.py
1
print(n := int(input()))2
print(n**(0.5))3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 기본 if문 99_1.py
조건이 참일 때만 실행하는 가장 간단한 if문
📄 99_1.py
1
if 123<456:2
print("Hello")3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 True 조건문 99_2.py
조건이 항상 True인 if문의 동작을 확인합니다
📄 99_2.py
1
if True:2
print("Python")3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 False 조건문 99_3.py
조건이 False일 때 if 블록이 실행되지 않음을 확인합니다
📄 99_3.py
1
if False:2
print("World")3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 절댓값 구하기 100.py
음수를 양수로 바꾸는 조건문 예제
📄 100.py
1
n = int(input())2
3
if n<0:4
n = -n5
6
print(n)7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 두 수 중 큰 값 101.py
if-else로 두 수 중 큰 수를 출력합니다
📄 101.py
1
a = int(input())2
b = int(input())3
4
if a>=b:5
print(a)6
7
if a<b:8
print(b)9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 if-else 분기 102.py
조건에 따라 다른 문자열을 출력하는 예제
📄 102.py
1
if 123>456:2
print("Hello")3
else:4
print("World")5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 짝수/홀수 판별 103.py
나머지 연산으로 짝수인지 홀수인지 판별합니다
📄 103.py
1
n = int(input())2
3
if (n%2)==0:4
print("even")5
else:6
print("odd")7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 두 수의 차이 104.py
두 수 중 큰 수에서 작은 수를 빼는 조건문
📄 104.py
1
a = int(input())2
b = int(input())3
4
if a>=b:5
print(a-b)6
else:7
print(b-a)8
9
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 성적 등급 (if-else) 105.py
점수에 따라 A, B, C 등급을 부여합니다
📄 105.py
1
n = int(input())2
3
if n>=80:4
print("A")5
else:6
if n>=60:7
print("B")8
else:9
print("C")10
11
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 성적 등급 (독립 if) 106.py
독립적인 if문으로 여러 조건을 검사합니다
📄 106.py
1
n = int(input())2
3
if n>=80:4
print("A")5
6
if n<80 and n>=60:7
print("B")8
9
if n<60:10
print("C")11
12
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 세 수 중 최댓값 107.py
세 숫자를 비교하여 가장 큰 값을 출력합니다
📄 107.py
1
a = int(input())2
b = int(input())3
c = int(input())4
5
if a>=b:6
if a>=c:7
print(a)8
else:9
print(c)10
else:11
if b>=c:12
print(b)13
else:14
print(c)15
16
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 반복 구조
📌 while 기본 109.py
1부터 3까지 while 반복문으로 출력합니다
📄 109.py
1
n = 12
while n<=3:3
print(n)4
n = n+15
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 while 입력 반복 110.py
입력받은 수까지 while로 출력하는 예제
📄 110.py
1
n = int(input())2
3
i = 14
while i<=n:5
print(i)6
i = i+17
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 별 찍기 (while) 111.py
while문으로 입력한 개수만큼 별(*)을 출력합니다
📄 111.py
1
n = int(input())2
3
i = 14
while i<=n:5
print("*", end="")6
i = i+17
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 for range 기본 112.py
for와 range(3)으로 0, 1, 2를 출력합니다
📄 112.py
1
for i in range(3):2
print(i)3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 for 1부터 n까지 113.py
range(1, n+1)로 1부터 n까지 출력합니다
📄 113.py
1
n = int(input())2
3
for i in range(1, n+1):4
print(i)5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 문자열 분리 반복 114.py
split()으로 나눈 단어들을 하나씩 출력합니다
📄 114.py
1
t = input().split()2
3
for s in t:4
print(s)5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 리스트 역순 출력 115.py
range를 역순으로 사용하여 리스트를 거꾸로 출력합니다
📄 115.py
1
d = list(map(int, input().split()))2
n = len(d)3
for i in range(n-1, -1, -1):4
print(d[i])5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 리스트 입력과 반복 116.py
n개의 숫자를 입력받아 리스트에 저장하고 출력합니다
📄 116.py
1
n = int(input())2
3
d = []4
for i in range(n):5
d.append(int(input()))6
7
for i in range(n):8
print(d[i], end=" ")9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 continue 건너뛰기 117.py
3의 배수를 건너뛰고 나머지만 출력하는 continue 예제
📄 117.py
1
n = int(input())2
3
for i in range(1, n+1):4
if (i%3)==0:5
continue6
print(i, end=" ")7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 break 탈출 118.py
음수 입력 시 while True를 break로 탈출합니다
📄 118.py
1
while True:2
n = int(input())3
if n<0:4
break5
print(n)6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 중첩 while 별 찍기 119.py
이중 while문으로 직각삼각형 별 패턴을 만듭니다
📄 119.py
1
n = int(input())2
3
i = 14
while i<=n:5
j = 16
while j<=i:7
print("*", end="")8
j = j+19
print("")10
i = i+111
12
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 중첩 for 격자 120.py
이중 for문으로 n×m 격자 패턴을 출력합니다
📄 120.py
1
n = int(input())2
m = int(input())3
4
for i in range(n):5
for j in range(m):6
print((i*m)+j+1, end=" ")7
print("")8
9
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 소수 판별 (기본) 123.py
2부터 나누어 소수인지 판별하는 기본 알고리즘
📄 123.py
1
n = int(input())2
3
i = 24
while i<n:5
if (n%i)==0:6
break7
i = i+18
9
if i==n:10
print("prime")11
else:12
print("composite")13
14
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 소수 판별 (최적화) 124.py
제곱근까지만 검사하여 효율적으로 소수를 판별합니다
📄 124.py
1
n = int(input())2
3
i = 24
while (i*i)<=n:5
if (n%i)==0:6
break7
i = i+18
9
if (i*i)>n:10
print("prime")11
else:12
print("composite")13
14
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 에라토스테네스의 체 125.py
에라토스테네스 방법으로 소수 목록을 만듭니다
📄 125.py
1
n = int(input())2
d = [2]3
i = 34
while i*i<=n:5
j = 06
while (d[j]*d[j])<=i:7
if (i%d[j])==0:8
break9
j = j+110
if (d[j]*d[j])>i:11
d.append(i)12
i = i+113
print(d)14
15
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 함수의 종류
📌 문자열 길이 함수 129.py
len() 내장 함수로 문자열의 길이를 구합니다
📄 129.py
1
s = input()2
print(len(s))3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 math.gcd 사용 130.py
math 모듈의 gcd로 최대공약수를 구합니다
📄 130.py
1
import math2
3
a, b = map(int, input().split())4
print(math.gcd(a, b))5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 모듈 별칭 as 131_1.py
import math as mt로 모듈에 짧은 이름을 붙입니다
📄 131_1.py
1
import math as mt2
a, b = map(int, input().split( ))3
print(mt.gcd(a, b))4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 from import * 131_2.py
from math import *로 직접 함수를 가져옵니다
📄 131_2.py
1
from math import *2
a, b = map(int, input().split( ))3
print(gcd(a, b))4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 함수의 설계
📌 함수 정의 기초 132.py
def로 간단한 함수를 정의합니다
📄 132.py
1
def f():2
print("Hello")3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 함수 호출 134.py
정의한 함수를 호출하여 실행하는 예제
📄 134.py
1
def f():2
print("Hello")3
4
f()5
print("World")6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 return 조기 종료 135.py
return으로 함수를 중간에 종료합니다
📄 135.py
1
def f():2
print("Hello")3
return4
print("World")5
6
f()7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 값 반환 함수 136.py
return으로 값을 돌려주는 함수를 만듭니다
📄 136.py
1
def f():2
return 33
4
print(f())5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 매개변수 전달 137.py
함수에 인자를 전달하여 사용하는 예제
📄 137.py
1
def f(n):2
print(n)3
4
f(3)5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 두 수의 합 함수 138.py
두 매개변수를 받아 합을 반환하는 함수
📄 138.py
1
def f(a, b):2
return a+b3
4
print(f(3, 5))5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 최솟값 함수 139.py
두 수 중 작은 값을 반환하는 함수를 만듭니다
📄 139.py
1
def f(a, b):2
if a<b:3
return a4
else:5
return b6
7
print(f(3, 5))8
9
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 반복 출력 함수 140.py
매개변수 n만큼 반복 출력하는 함수
📄 140.py
1
def f(n):2
k = 03
while k<n:4
k = k+15
print(k)6
7
f(3)8
9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 누적 합 함수 141.py
1부터 n까지의 합을 구하는 함수
📄 141.py
1
def f(n):2
k = 03
s = 04
while k<n:5
k = k+16
s = s+k7
return s8
9
print(f(3))10
11
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 전역 변수 활용 함수 142.py
global 키워드로 함수에서 전역 변수를 변경합니다
📄 142.py
1
s = 02
def f(n):3
global s4
k = 05
while k<n:6
k = k+17
s = s+k8
9
f(3)10
print(s)11
12
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 합계 반환 함수 143.py
for문으로 1~n 합을 구해 return하는 함수
📄 143.py
1
def f(n):2
s = 03
for k in range(1, n+1):4
s = s+k5
return s6
7
n = int(input())8
9
print(f(n))10
11
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 난수 생성 146.py
random 모듈로 무작위 정수를 생성합니다
📄 146.py
1
from random import *2
n = int(input())3
for i in range(n):4
print(randint(1, 100))5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 시드 고정 난수 147.py
seed()로 난수 순서를 고정하여 재현 가능하게 합니다
📄 147.py
1
from random import *2
seed(1)3
n = int(input())4
for i in range(n):5
print(randint(1, 100))6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 파일 처리
📌 파일 쓰기 기초 155.py
open()과 write()로 텍스트 파일을 생성합니다
📄 155.py
1
f = open("out.txt", "w")2
3
f.write("hello\n")4
f.write("world\n")5
6
f.close()7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 반복으로 파일 쓰기 156.py
for문을 이용해 여러 줄을 파일에 기록합니다
📄 156.py
1
f = open("out.txt", "w")2
3
n = int(input())4
5
for i in range(n):6
d = int(input())7
f.write(str(d))8
f.write("\n")9
10
f.close()11
12
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 파일 읽기 기초 158.py
read()로 파일 전체를 읽어 출력합니다
📄 158.py
1
f = open("in.txt", "r")2
rows = (f.read()).split("\n")3
f.close()4
5
for row in rows:6
print(row)7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 파일에서 검색 159.py
파일을 읽어 특정 데이터를 찾는 예제
📄 159.py
1
f = open("in.txt", "r")2
rows = (f.read()).split("\n")3
f.close()4
5
n = int(input())6
7
for row in rows[:n]:8
print(int(row))9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 CSV 파일 읽기 161.py
CSV 파일을 읽어 데이터를 처리합니다
📄 161.py
1
f = open("data.csv", "r", encoding="utf-8-sig")2
rows = (f.read()).split("\n")3
f.close()4
5
for row in rows:6
values = row.split(",")7
for value in values:8
print(value, end=" ")9
print()10
11
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 CSV 파일 쓰기 163.py
2차원 리스트를 CSV 형식으로 파일에 저장합니다
📄 163.py
1
rows = [["data A","data B","sum","mean"],2
[1,2,3,1.5],3
[3,4,7,3.5],4
[5,6,11,5.5]]5
6
f = open("dataout.csv", "w")7
8
for row in rows:9
for value in row[:-1]:10
f.write(str(value)+",")11
f.write(str(row[-1])+"\n")12
13
f.close()14
15
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 난수 파일 저장 166.py
random으로 생성한 난수를 파일에 저장합니다
📄 166.py
1
from random import *2
seed(1)3
4
n = int(input())5
6
f = open("in1.txt", "w")7
for i in range(n):8
f.write(str(randint(0,100))+"\n")9
f.close()10
11
f = open("in2.txt", "w")12
for i in range(n):13
f.write(str(randint(0,100))+"\n")14
f.close()15
16
f1 = open("in1.txt", "r")17
f2 = open("in2.txt", "r")18
f3 = open("sum.txt", "w")19
f4 = open("minmax.txt", "w")20
21
for i in range(n):22
a = int(f1.readline())23
b = int(f2.readline())24
f3.write(str(a+b)+"\n")25
f4.write(str(min(a,b))+" "+str(max(a,b))+"\n")26
27
f1.close()28
f2.close()29
f3.close()30
f4.close()31
32
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 파일 프로젝트
📌 두 수의 합 (입력) 168_1.py
한 줄에 두 수를 입력받아 합을 출력합니다
📄 168_1.py
1
a, b = input().split()2
a = int(a)3
b = int(b)4
5
print(a+b)6
print(a-b)7
print(a*b)8
print(a/b)9
print(a//b)10
print(a%b)11
print(a**b)12
13
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 조건 필터 출력 168_2.py
2의 배수이면서 3의 배수가 아닌 수를 출력합니다
📄 168_2.py
1
n = int(input())2
3
for i in range(1, n+1):4
if (i%2==0) and (i%3!=0):5
print(i, end=" ")6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 별 격자 출력 168_3.py
n×m 크기의 별(★) 격자를 출력합니다
📄 168_3.py
1
n, m = input().split()2
3
n = int(n)4
m = int(m)5
for i in range(n):6
for j in range(m):7
print(i*m+j+1, end=" ")8
print()9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 별 감소 출력 168_4.py
n개에서 시작해 하나씩 줄이며 별을 출력합니다
📄 168_4.py
1
n = int(input())2
3
while n>0:4
print("*", end="")5
n = n-16
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 3의 배수 건너뛰기 169_1.py
continue로 3의 배수를 건너뛰며 출력합니다
📄 169_1.py
1
n = int(input())2
while n>0:3
n = n-14
if n%3==0:5
continue6
print(n, end=" ")7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 소수 판별 함수 169_2.py
while문으로 소수를 판별하는 예제
📄 169_2.py
1
n = int(input())2
3
k = 24
while k<n:5
if n%k==0:6
break7
k = k+18
9
if k==n:10
print("prime")11
else:12
print("composite")13
14
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 큰 값 반환 함수 169_3.py
두 수를 비교하여 큰 값을 return합니다
📄 169_3.py
1
def f(a, b):2
if a>b:3
return a4
else:5
return b6
7
n, m, k = map(int, input().split())8
9
print(f(f(n, m), k))10
11
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 반복 출력 함수 호출 169_4.py
같은 수를 여러 번 출력하는 함수를 활용합니다
📄 169_4.py
1
def f(a):2
for i in range(1, a+1):3
print(a, end=" ")4
5
n = int(input())6
7
for i in range(1, n+1):8
f(i)9
print()10
11
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
🏗️ III단원
설계와 구현
📖 비만도 측정
📌 BMI 비만도 측정 195.py
키와 몸무게로 BMI를 계산하고 비만도를 판정합니다
📄 195.py
1
# 입력 처리2
h,w = input().split()3
h = float(h)4
w = float(w)5
6
# 키에 따른 표준 몸무게 계산7
if h<150:8
stdw = h-1009
elif h<160:10
stdw = (h-150)/2+5011
else:12
stdw = (h-100)*0.913
14
# 비만도 계산15
bmi = (w-stdw)*100/stdw16
17
# 비만도 판정18
if bmi<=10:19
print("정상")20
elif bmi<=20:21
print("과체중")22
else:23
print("비만")24
25
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 일차 방정식
📌 일차 방정식 풀기 200.py
ax+b=c 형태의 방정식을 문자열 파싱으로 풀어냅니다
📄 200.py
1
# 입력 처리(ax+b=c)2
eq = input()3
a,b = eq.split('x') # 'x'를 기준으로 문자열 분리4
b,c = b.split('=') # '='를 기준으로 문자열 분리5
6
# 정수로 자료형 변환7
a = int(a)8
b = int(b)9
c = int(c)10
11
# x값 구하기12
x = (c-b)/a13
14
# 출력 처리15
print("{:.2f}".format(x)) # 반올림해서 출력16
17
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 이달의 날짜
📌 이달의 날짜 수 203.py
윤년을 고려하여 해당 월의 날짜 수를 계산합니다
📄 203.py
1
# 입력 처리(연도, 월 입력 후 정수로 변환)2
y, m = input().split()3
y = int(y)4
m = int(m)5
6
# 각 월의 마지막 날 정리.7
lastday = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]8
9
if m==2: # 2월인 경우10
if y%400==0 or y%4==0 and y%100!=0: # 윤달이면11
lastday[2] += 112
13
# 마지막 날 출력14
print(lastday[m])15
16
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 철근 자르기
📌 철근 자르기 208.py
철근 길이와 간격으로 절단 횟수를 계산합니다
📄 208.py
1
# 입력 처리2
n,k = input().split()3
n = int(n)4
k = int(k)5
6
# 철근 길이로 자재 번호 계산7
count = n//k8
if count>9999: # 자재 번호가 9999를 초과하면9
status = False # 오류 상태10
else:11
status = True # 출력 가능 상태12
13
# 상태에 따라 출력14
if status: # 출력 가능 상태이면15
for x in range(1,count+1):16
print("F-{:04d}".format(x)) # F-xxxx 형태로 출력17
else:18
print("번호 초과 오류")19
20
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 바코드 검증
📌 바코드 검증 212.py
12자리 바코드의 검증 코드를 계산하여 유효성을 확인합니다
📄 212.py
1
# 바코드 열두 자리를 입력받음2
code = input()3
4
sum = 0 # 합을 저장하는 변수5
pos = 0 # 몇 번째 위치인지 나타내는 변수6
7
# 반복문으로8
for x in code:9
pos = pos+1 # 위치 값 1 증가10
if pos%2==1: # 위치가 홀수이면11
sum = sum+int(x) # 그 수를 더함.12
else: # 위치가 짝수이면13
sum = sum+3*int(x) # 3배를 더함.14
15
res = (10-(sum%10))%10 # 검증 수 구하기16
17
print(code+str(res)) # 열세 자리 바코드 출력18
19
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 암호 해독
📌 시저 암호 해독 217.py
알파벳을 시프트하여 암호문을 만들고 해독합니다
📄 217.py
1
# 입력 처리(암호문)2
inp = input()3
res = "" # 원문 저장4
5
for x in inp: # 반복문을 이용하여 한 문자씩 접근6
if x==' ': # 공백인 경우7
res += ' '8
elif x=='a': # 'a'인 경우9
res += 'x'10
elif x=='b': # 'b'인 경우11
res += 'y'12
elif x=='c': # 'c'인 경우13
res += 'z'14
else: # 그 외 문자인 경우15
res += chr(ord(x)-3)16
17
# 출력 처리18
print(res)19
20
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 파이값 근사
📌 몬테카를로 파이 계산 220.py
무작위 점으로 원주율 π를 근사하는 알고리즘
📄 220.py
1
# 입력 처리2
n = int(input())3
points = [] # 무작위 점들의 리스트4
for i in range(n):5
xy = list(map(int, input().split())) # x, y 좌푯값 입력6
points.append(xy) # 점을 리스트에 추가7
8
# 원 안에 들어가는 점의 개수 세기9
inp = 010
for x,y in points:11
if x**2+y**2 <= 1000**2: # 원의 반지름은 1000, 피타고라스 정리12
inp += 1 # inp 값 1 증가13
14
pi = (4*inp)/n # 파이(π)값 계산식15
16
# 출력 처리(소수점 여섯째 자리까지 출력)17
print("{:.6f}".format(pi))18
19
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 터틀 파이 시각화 222.py
turtle 그래픽으로 몬테카를로 π 추정을 시각화합니다
📄 222.py
1
import turtle2
import random3
4
# 터틀 초기화5
t = turtle.Turtle( )6
t.speed(0)7
t.hideturtle( )8
9
# 변수 초기화10
inp = 0 # 원 안에 들어간 점의 개수11
pi = 0 # pi 추정값12
r = 300 # 반지름 300픽셀로 지정13
14
# 10000번 반복15
for n in range(1,10001):16
# (x, y) 좌표 랜덤 생성17
x = random.uniform(0,r)18
y = random.uniform(0,r)19
20
# (x, y)로 이동21
t.up()22
t.goto(x, y)23
t.down()24
25
# 이 좌표가 원 안에 들어가는지 판단26
27
28
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📌 파이 정밀 계산 223.py
더 많은 점으로 π 근사값의 정밀도를 높입니다
📄 223.py
1
if x**2+y**2 <= r**2:2
inp += 1 # 원 안에 들어간 점의 개수 1 증가3
t.dot(4,"blue") # 파란 점 찍기4
else:5
t.dot(4,"red") # 빨간 점 찍기6
7
pi = (4*inp)/n # pi값 계산8
9
# n=50, 100, 150, ..., 10000일 때마다 pi값 출력10
if n%50==0:11
# pi값 출력할 위치로 이동12
t.up( )13
t.goto(0, -100)14
15
# 텍스트를 출력할 흰색 사각형 그리기16
t.begin_fill( )17
t.color("white")18
t.goto(300, -100)19
t.goto(300, -10)20
t.goto(0, -10)21
t.goto(0,-100)22
t.end_fill()23
24
# pi값 출력25
t.color("black")26
t.write("n="+str(n)+"\npi="+str(pi), font=("Arial", 16, "normal"))27
28
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 종이 자르기
📌 종이 자르기 227.py
2차원 배열로 종이를 나누어 세는 문제를 풀어봅니다
📄 227.py
1
# 입력 처리2
paper = []3
n,m = input().split()4
n = int(n)5
m = int(m)6
7
# 중첩 반복문8
for row in range(1, m+1):9
line = ""10
for col in range(1, n+1):11
if row==1 or row==m: # (1,1),(1,n),(m,1),(m,n)인 경우12
if col==1 or col==n:13
line += '+'14
else:15
line += '-'16
elif col==1 or col==n: # 1열, n열인 경우17
line += '|'18
else: # 그 외 칸은 공백19
line += ' '20
paper.append(line) # paper에 한 줄 추가21
22
# 출력 처리23
for row in paper:24
print(row)25
26
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 복면산 문제
📌 복면산 퍼즐 (SOT) 232.py
3중 반복으로 SOT+SOT=TOT 복면산을 풀어냅니다
📄 232.py
1
# 3중 반복문(S,O,T의 값을 순서대로 대입해서 계산)2
for S in range(0,10):3
for O in range(0,10):4
if O==S: # S와 O가 같은 숫자인 경우 다음 반복으로5
continue6
for T in range(0,10):7
if T==S or T==O: # T와 S, O가 같은 숫자인 경우 다음 반복으로8
continue9
if (S*100+O*10+T)-(S*10+O)==T*10+T: # 식이 맞으면 출력10
print("{}{}{}-{}{}={}{}".format(S,O,T,S,O,T,T))11
12
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 원의 겹침
📌 원의 겹침 판별 235.py
두 원의 중심 거리와 반지름으로 겹침을 판별합니다
📄 235.py
1
# 입력 처리2
a = list(map(int, input().split()))3
b = list(map(int, input().split()))4
5
# 원의 겹침 여부 판별하는 함수(겹치는 점의 개수를 리턴)6
def f(a,b):7
dist = ((a[0]-b[0])**2 + (a[1]-b[1])**2)**0.58
if dist > a[2]+b[2]:9
return 010
elif dist == a[2]+b[2]:11
return 112
elif dist == abs(a[2]-b[2]):13
return 114
elif dist < abs(a[2]-b[2]):15
return 016
else:17
return 218
19
# 출력 처리(겹치는 경우, 접하는 경우, 겹치지 않는 경우)20
if f(a,b)==2: # 겹치는 점이 2개인 경우21
print("overlapped")22
elif f(a,b)==1: # 겹치는 점이 1개인 경우23
print("tangent")24
else: # 겹치지 않는 경우25
print("not overlapped")26
27
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 철광석 제련
📌 철광석 지뢰찾기 239.py
2차원 배열에서 주변 지뢰 수를 세는 알고리즘
📄 239.py
1
# 입력 처리(2차원 리스트)2
mines = []3
for row in range(5):4
x = list(map(int, input().split()))5
mines.append(x)6
7
# (row, col) 주변의 가치 합을 구하는 함수8
def f(row, col):9
res = 010
for i in range(row-1, row+2):11
for j in range(col-1, col+2):12
res += mines[i][j]13
return res14
15
# ① → ② → … → ⑨를 탐색하며 최대 가치 구함.16
maxval = 017
for row in range(1, 4):18
for col in range(1, 4):19
sum = f(row,col)20
if sum>maxval:21
maxval = sum22
23
# 출력 처리(최대 가치 출력)24
print(maxval)25
26
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 3등 찾기
📌 3등 찾기 알고리즘 244.py
n개의 점수에서 3번째로 큰 값을 찾습니다
📄 244.py
1
# 입력 처리2
n = int(input())3
data = []4
5
for x in range(n):6
a,b = input().split()7
data.append([a, int(b)])8
9
# 데이터 정렬10
data.sort(key = lambda x: -x[1]) # 정보 점수의 내림차순으로 정렬11
12
# 출력 처리(3등이므로 인덱스는 2)13
print(data[2][0]) # [2][0]: 이름, [2][1]: 점수14
15
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 도서 대출
📌 도서 대출 시스템 249.py
딕셔너리로 도서 대출/반납을 관리하는 프로그램
📄 249.py
1
# 입력 처리2
n = int(input())3
books = {} # 대출 리스트 딕셔너리 생성4
5
# 대출 리스트에 book을 추가6
def addBook(book):7
if book in books: # 대출 리스트에 도서가 있는 경우8
books[book] += 19
else: # 대출 리스트에 도서가 없는 경우10
books[book] = 111
12
# 대출 리스트에서 book을 제거13
def delBook(book):14
if book in books: # 대출 리스트에 도서가 있는 경우15
books[book] -= 116
if books[book]==0: # 도서 대여 개수가 0인 경우17
del books[book] # 대출 리스트에서 삭제18
else:19
print("no book!") # 대출 리스트에 도서가 없는 경우 에러 출력20
21
# 대출 리스트 출력22
def printBooks(books):23
for k,v in books.items(): # 딕셔너리의 키와 값을 순서대로 k,v에 저장24
print(k, v) # 키와 값 출력25
26
# 명령어 처리27
for x in range(n):28
cmd = input()29
if cmd[0]=='1': # 명령어가 1인 경우30
addBook(cmd[2:])31
elif cmd[0]=='2': # 명령어가 2인 경우32
delBook(cmd[2:])33
elif cmd[0]=='0': # 명령어가 0인 경우34
printBooks(books)35
else: # 명령어가 잘못된 경우36
print("wrong command!")37
38
39
40
41
42
43
44
45
46
47
48
49
50
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📖 교집합 합집합
📌 교집합과 합집합 254.py
set 자료구조로 집합의 교집합, 합집합을 구합니다
📄 254.py
1
# 입력 처리2
n = int(input())3
A = set(map(int, input().split())) # 집합 자료 구조4
m = int(input())5
B = set(map(int, input().split())) # 집합 자료 구조6
7
s1 = A & B # 교집합 연산8
s2 = A | B # 합집합 연산9
10
if len(s1)==0: # 공집합이면 0 출력11
print(0, end='')12
else: # 공집합이 아니면13
for x in sorted(s1): # 교집합의 원소를 오름차순으로 출력14
print(x, end=' ')15
print() # 한 줄 띄우고16
for x in sorted(s2): # 합집합의 원소를 오름차순으로 출력17
print(x, end=' ')18
19
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요