🚀 I단원

프로그래밍의 개요

📖 프로그래밍 언어

📌 두 수의 차이 구하기 27_1.py

두 정수를 입력받아 큰 수에서 작은 수를 빼는 조건문 예제
📄 27_1.py
1a = int(input())
2b = int(input())
3if a>b:
4 t = a-b
5else:
6 t = b-a
7print(t)
8
9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 유클리드 최대공약수 27_2.py

while 반복문으로 유클리드 호제법을 구현하여 GCD를 구합니다
📄 27_2.py
1a = int(input())
2b = int(input())
3
4while b!=0:
5 t = b
6 b = a%b
7 a = t
8print(a)
9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 프로그래밍 언어 소개 함수 37.py

C, C++, Java, Python 언어의 특징을 함수로 출력하는 예제
📄 37.py
1def c():
2 print("C의 특징")
3 #C 특징 작성
4
5def cpp():
6 print("C++의 특징")
7 #C++ 특징 작성
8
9def java():
10 print("Java의 특징")
11 #Java 특징 작성
12
13def python():
14 print("Python의 특징")
15 #Python 특징 작성
16
17print("특징을 알고 싶은 프로그래밍 언어를 선택하세요.")
18print("1. C")
19print("2. C++")
20print("3. Java")
21print("4. Python")
22
23n = int(input())
24
25if n==1 :
26 c()
27elif n==2 :
28 cpp()
29elif n==3 :
30 java()
31elif n==4 :
32 python()
33else :
34 print("잘못 선택했습니다.")
35
36
37
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 절차와 알고리즘

📌 자료형 오류 체험 45_1.py

정수와 문자열을 더하면 오류가 발생하는 것을 확인합니다
📄 45_1.py
1print(1+"1")
2
3
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 문자열 반복 연산 45_2.py

숫자와 문자열의 곱셈으로 문자열을 반복하는 예제
📄 45_2.py
1print(3*"hello")
2
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
📘 II단원

프로그래밍의 기초

📖 데이터 출력

📌 첫 번째 출력 47.py

print()로 'Hello'를 출력하는 가장 기본적인 예제
📄 47.py
1print("Hello")
2
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 두 단어 출력 48.py

print()에 여러 값을 전달하여 공백으로 구분해 출력합니다
📄 48.py
1print("Hello", "World")
2
3
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 구분자 sep 사용 49.py

sep=':'를 사용하여 숫자를 콜론으로 구분해 출력합니다
📄 49.py
1print(13, 45, 29, sep=":")
2
3
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 줄바꿈 출력 50.py

두 개의 print()로 각각 다른 줄에 출력하는 예제
📄 50.py
1print("Hello")
2print("World")
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 end 매개변수 51.py

end=','로 줄바꿈 대신 쉼표를 넣어 한 줄로 이어 출력합니다
📄 51.py
1print("A", end=",")
2print("B", end=",")
3print("C")
4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 변수로 반복 출력 53.py

변수 s에 문자열을 저장하고 3번 출력하는 예제
📄 53.py
1s = "Hello"
2print(s)
3print(s)
4print(s)
5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 변수 값 변경 54.py

변수 n의 값을 0에서 1로 바꾸며 출력 결과가 변하는 것을 확인합니다
📄 54.py
1n = 0
2print(n)
3n = 1
4print(n)
5print(n)
6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 여러 변수 조합 출력 55.py

s1, s2, s3 세 변수를 다양한 순서로 출력합니다
📄 55.py
1s1 = "Hello"
2s2 = "Python"
3s3 = "World"
4print(s1, s2, s3)
5print(s2, s3, s1)
6print(s3, s1, s2)
7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 데이터 입력

📌 리스트 생성과 출력 56_1.py

숫자 리스트 [1,2,3,4,5]를 만들고 출력합니다
📄 56_1.py
1d = [1, 2, 3, 4, 5]
2print(d)
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 리스트 역순 접근 56_2.py

인덱스를 이용하여 리스트를 역순으로 출력합니다
📄 56_2.py
1d = [1, 2, 3, 4, 5]
2print(d[4], d[3], d[2], d[1], d[0])
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 전역/지역 변수 57.py

global 키워드로 전역 변수를 함수 안에서 변경하는 예제
📄 57.py
1s = 0 #전역 변수 s
2
3def f(n): #함수 f( )의 매개 변수 n
4 global s
5 k = 0 #함수 f( ) 안의 지역 변수 k
6 while k<n:
7 k = k+1
8 s = s+k
9
10f(3)
11print(s)
12
13
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 기본 입력 58.py

input()으로 값을 입력받아 그대로 출력하는 예제
📄 58.py
1s = input()
2print(s)
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 두 줄 입력 59.py

두 번의 input()으로 각각 값을 입력받아 출력합니다
📄 59.py
1s1 = input()
2s2 = input()
3print(s1)
4print(s2)
5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 한 줄에 두 값 입력 60.py

split()으로 공백 기준 분리하여 두 변수에 저장합니다
📄 60.py
1s1, s2 = input().split()
2print(s1)
3print(s2)
4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 리스트로 분리 입력 61.py

split()의 결과를 리스트에 저장하고 인덱스로 접근합니다
📄 61.py
1s = input().split()
2print(s[0])
3print(s[1])
4print(s[2])
5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 정수 리스트 입력 62.py

map(int, ...)으로 여러 정수를 한 번에 입력받습니다
📄 62.py
1d = list(map(int, input().split()))
2print(d[0], d[1], d[2], d[3], d[4])
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 콜론 구분 입력 63.py

':'를 구분자로 시:분:초를 분리하여 출력합니다
📄 63.py
1h, m, s = input().split(':')
2print(h)
3print(m)
4print(s)
5
6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 쉼표 구분 입력 64.py

','를 구분자로 여러 숫자를 분리하여 줄바꿈 출력합니다
📄 64.py
1d = list(map(int, input().split(',')))
2print(d[0], d[1], d[2], d[3], d[4], sep='\n')
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 빈 줄과 출력 66_2.py

빈 줄이 있는 코드에서 print가 어떻게 실행되는지 확인합니다
📄 66_2.py
1
2
3
4print("Hello")
5
6if True:
7 print("World")
8
9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 리스트 셔플 67.py

random.shuffle()로 이름 리스트를 무작위로 섞어 출력합니다
📄 67.py
1import random
2names = input().split()
3random.shuffle(names)
4print(names)
5random.shuffle(names)
6print(names)
7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 산술 연산

📌 덧셈 연산 70.py

두 정수의 덧셈 결과를 출력하는 기본 산술 예제
📄 70.py
1print(123+456)
2
3
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 나눗셈 연산 71.py

두 수를 입력받아 나눗셈 결과를 출력합니다
📄 71.py
1a = input()
2b = input()
3a = int(a)
4b = int(b)
5print(a/b)
6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 문자열 연결 72.py

두 문자열을 + 연산자로 연결하여 출력합니다
📄 72.py
1s1, s2 = input().split()
2print(s1+s2)
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 문자열 반복 73.py

문자열에 정수를 곱하여 반복 출력하는 예제
📄 73.py
1s = input()
2print(s*3)
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 비교 연산

📌 비교 연산 기초 75.py

두 수의 대소를 비교하여 True/False를 출력합니다
📄 75.py
1print(123<456)
2
3
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 같은지 비교 76.py

== 연산자로 두 값이 같은지 확인합니다
📄 76.py
1a = input()
2b = input()
3a = int(a)
4b = int(b)
5print(a==b)
6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 크기 비교 (실수) 77.py

float로 변환 후 <= 연산자로 비교합니다
📄 77.py
1a = input()
2b = input()
3a = float(a)
4b = float(b)
5print(a<=b)
6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 문자열 비교 78.py

두 문자열이 같은지 == 연산자로 비교합니다
📄 78.py
1s1, s2 = input().split()
2print(s1==s2)
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 논리 연산

📌 not 연산 80.py

not 연산자로 비교 결과를 반전합니다
📄 80.py
1print(not (123<456))
2
3
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 같지 않은지 판별 81.py

not과 ==를 조합하여 두 수가 다른지 확인합니다
📄 81.py
1a = input()
2b = input()
3a = int(a)
4b = int(b)
5print(not (a==b))
6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 or 논리 연산 82.py

2의 배수 또는 3의 배수인지 or로 판별합니다
📄 82.py
1n = int(input())
2print((n%2==0) or (n%3==0))
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 and 논리 연산 83.py

2의 배수이면서 3의 배수인지 and로 판별합니다
📄 83.py
1n = int(input())
2print((n%2==0) and (n%3==0))
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 비트 연산

📌 비트 NOT (~) 85.py

비트 보수 연산 ~n의 결과를 확인합니다
📄 85.py
1n = int(input())
2print(~n)
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 비트 OR (|) 86.py

두 수의 비트 OR 연산 결과를 확인합니다
📄 86.py
1a = int(input())
2b = int(input())
3print(a|b)
4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 비트 AND (&) 88.py

두 수의 비트 AND 연산 결과를 확인합니다
📄 88.py
1a = int(input())
2b = int(input())
3print(a&b)
4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 비트 XOR (^) 89.py

두 수의 비트 배타적 OR 연산을 수행합니다
📄 89.py
1a = int(input())
2b = int(input())
3print(a^b)
4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 왼쪽 시프트 (<<) 91.py

비트를 왼쪽으로 이동하여 값이 2배가 되는 것을 확인합니다
📄 91.py
1n = int(input())
2k = int(input())
3print(n<<k)
4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 오른쪽 시프트 (>>) 92.py

비트를 오른쪽으로 이동하여 값이 반으로 줄어듭니다
📄 92.py
1n = int(input())
2k = int(input())
3print(n>>k)
4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 비트 연산 곱셈 94.py

비트 AND와 시프트를 활용한 곱셈 알고리즘
📄 94.py
1n = int(input())
2m = int(input())
3t = 0
4while m>0: #반복 실행
5 t = t+(n*(m&1))
6 n = n<<1
7 m = m>>1
8print(t)
9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 선택 구조

📌 큰 수의 거듭제곱 96_1.py

2의 1000제곱을 계산하는 파이썬의 큰 수 처리
📄 96_1.py
1print(2**1000)
2
3
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 제곱근 계산 96_2.py

** 0.5로 제곱근을 구합니다
📄 96_2.py
1print(2**(0.5))
2
3
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 왈러스 연산자 := 96_3.py

입력과 동시에 변수에 저장하는 := 연산자 예제
📄 96_3.py
1print(n := int(input()))
2print(n**(0.5))
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 기본 if문 99_1.py

조건이 참일 때만 실행하는 가장 간단한 if문
📄 99_1.py
1if 123<456:
2 print("Hello")
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 True 조건문 99_2.py

조건이 항상 True인 if문의 동작을 확인합니다
📄 99_2.py
1if True:
2 print("Python")
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 False 조건문 99_3.py

조건이 False일 때 if 블록이 실행되지 않음을 확인합니다
📄 99_3.py
1if False:
2 print("World")
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 절댓값 구하기 100.py

음수를 양수로 바꾸는 조건문 예제
📄 100.py
1n = int(input())
2
3if n<0:
4 n = -n
5
6print(n)
7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 두 수 중 큰 값 101.py

if-else로 두 수 중 큰 수를 출력합니다
📄 101.py
1a = int(input())
2b = int(input())
3
4if a>=b:
5 print(a)
6
7if a<b:
8 print(b)
9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 if-else 분기 102.py

조건에 따라 다른 문자열을 출력하는 예제
📄 102.py
1if 123>456:
2 print("Hello")
3else:
4 print("World")
5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 짝수/홀수 판별 103.py

나머지 연산으로 짝수인지 홀수인지 판별합니다
📄 103.py
1n = int(input())
2
3if (n%2)==0:
4 print("even")
5else:
6 print("odd")
7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 두 수의 차이 104.py

두 수 중 큰 수에서 작은 수를 빼는 조건문
📄 104.py
1a = int(input())
2b = int(input())
3
4if a>=b:
5 print(a-b)
6else:
7 print(b-a)
8
9
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 성적 등급 (if-else) 105.py

점수에 따라 A, B, C 등급을 부여합니다
📄 105.py
1n = int(input())
2
3if n>=80:
4 print("A")
5else:
6 if n>=60:
7 print("B")
8 else:
9 print("C")
10
11
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 성적 등급 (독립 if) 106.py

독립적인 if문으로 여러 조건을 검사합니다
📄 106.py
1n = int(input())
2
3if n>=80:
4 print("A")
5
6if n<80 and n>=60:
7 print("B")
8
9if n<60:
10 print("C")
11
12
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 세 수 중 최댓값 107.py

세 숫자를 비교하여 가장 큰 값을 출력합니다
📄 107.py
1a = int(input())
2b = int(input())
3c = int(input())
4
5if a>=b:
6 if a>=c:
7 print(a)
8 else:
9 print(c)
10else:
11 if b>=c:
12 print(b)
13 else:
14 print(c)
15
16
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 반복 구조

📌 while 기본 109.py

1부터 3까지 while 반복문으로 출력합니다
📄 109.py
1n = 1
2while n<=3:
3 print(n)
4 n = n+1
5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 while 입력 반복 110.py

입력받은 수까지 while로 출력하는 예제
📄 110.py
1n = int(input())
2
3i = 1
4while i<=n:
5 print(i)
6 i = i+1
7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 별 찍기 (while) 111.py

while문으로 입력한 개수만큼 별(*)을 출력합니다
📄 111.py
1n = int(input())
2
3i = 1
4while i<=n:
5 print("*", end="")
6 i = i+1
7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 for range 기본 112.py

for와 range(3)으로 0, 1, 2를 출력합니다
📄 112.py
1for i in range(3):
2 print(i)
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 for 1부터 n까지 113.py

range(1, n+1)로 1부터 n까지 출력합니다
📄 113.py
1n = int(input())
2
3for i in range(1, n+1):
4 print(i)
5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 문자열 분리 반복 114.py

split()으로 나눈 단어들을 하나씩 출력합니다
📄 114.py
1t = input().split()
2
3for s in t:
4 print(s)
5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 리스트 역순 출력 115.py

range를 역순으로 사용하여 리스트를 거꾸로 출력합니다
📄 115.py
1d = list(map(int, input().split()))
2n = len(d)
3for i in range(n-1, -1, -1):
4 print(d[i])
5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 리스트 입력과 반복 116.py

n개의 숫자를 입력받아 리스트에 저장하고 출력합니다
📄 116.py
1n = int(input())
2
3d = []
4for i in range(n):
5 d.append(int(input()))
6
7for i in range(n):
8 print(d[i], end=" ")
9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 continue 건너뛰기 117.py

3의 배수를 건너뛰고 나머지만 출력하는 continue 예제
📄 117.py
1n = int(input())
2
3for i in range(1, n+1):
4 if (i%3)==0:
5 continue
6 print(i, end=" ")
7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 break 탈출 118.py

음수 입력 시 while True를 break로 탈출합니다
📄 118.py
1while True:
2 n = int(input())
3 if n<0:
4 break
5 print(n)
6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 중첩 while 별 찍기 119.py

이중 while문으로 직각삼각형 별 패턴을 만듭니다
📄 119.py
1n = int(input())
2
3i = 1
4while i<=n:
5 j = 1
6 while j<=i:
7 print("*", end="")
8 j = j+1
9 print("")
10 i = i+1
11
12
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 중첩 for 격자 120.py

이중 for문으로 n×m 격자 패턴을 출력합니다
📄 120.py
1n = int(input())
2m = int(input())
3
4for 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
1n = int(input())
2
3i = 2
4while i<n:
5 if (n%i)==0:
6 break
7 i = i+1
8
9if i==n:
10 print("prime")
11else:
12 print("composite")
13
14
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 소수 판별 (최적화) 124.py

제곱근까지만 검사하여 효율적으로 소수를 판별합니다
📄 124.py
1n = int(input())
2
3i = 2
4while (i*i)<=n:
5 if (n%i)==0:
6 break
7 i = i+1
8
9if (i*i)>n:
10 print("prime")
11else:
12 print("composite")
13
14
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 에라토스테네스의 체 125.py

에라토스테네스 방법으로 소수 목록을 만듭니다
📄 125.py
1n = int(input())
2d = [2]
3i = 3
4while i*i<=n:
5 j = 0
6 while (d[j]*d[j])<=i:
7 if (i%d[j])==0:
8 break
9 j = j+1
10 if (d[j]*d[j])>i:
11 d.append(i)
12 i = i+1
13print(d)
14
15
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 함수의 종류

📌 문자열 길이 함수 129.py

len() 내장 함수로 문자열의 길이를 구합니다
📄 129.py
1s = input()
2print(len(s))
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 math.gcd 사용 130.py

math 모듈의 gcd로 최대공약수를 구합니다
📄 130.py
1import math
2
3a, b = map(int, input().split())
4print(math.gcd(a, b))
5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 모듈 별칭 as 131_1.py

import math as mt로 모듈에 짧은 이름을 붙입니다
📄 131_1.py
1import math as mt
2a, b = map(int, input().split( ))
3print(mt.gcd(a, b))
4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 from import * 131_2.py

from math import *로 직접 함수를 가져옵니다
📄 131_2.py
1from math import *
2a, b = map(int, input().split( ))
3print(gcd(a, b))
4
5
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 함수의 설계

📌 함수 정의 기초 132.py

def로 간단한 함수를 정의합니다
📄 132.py
1def f():
2 print("Hello")
3
4
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 함수 호출 134.py

정의한 함수를 호출하여 실행하는 예제
📄 134.py
1def f():
2 print("Hello")
3
4f()
5print("World")
6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 return 조기 종료 135.py

return으로 함수를 중간에 종료합니다
📄 135.py
1def f():
2 print("Hello")
3 return
4 print("World")
5
6f()
7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 값 반환 함수 136.py

return으로 값을 돌려주는 함수를 만듭니다
📄 136.py
1def f():
2 return 3
3
4print(f())
5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 매개변수 전달 137.py

함수에 인자를 전달하여 사용하는 예제
📄 137.py
1def f(n):
2 print(n)
3
4f(3)
5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 두 수의 합 함수 138.py

두 매개변수를 받아 합을 반환하는 함수
📄 138.py
1def f(a, b):
2 return a+b
3
4print(f(3, 5))
5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 최솟값 함수 139.py

두 수 중 작은 값을 반환하는 함수를 만듭니다
📄 139.py
1def f(a, b):
2 if a<b:
3 return a
4 else:
5 return b
6
7print(f(3, 5))
8
9
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 반복 출력 함수 140.py

매개변수 n만큼 반복 출력하는 함수
📄 140.py
1def f(n):
2 k = 0
3 while k<n:
4 k = k+1
5 print(k)
6
7f(3)
8
9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 누적 합 함수 141.py

1부터 n까지의 합을 구하는 함수
📄 141.py
1def f(n):
2 k = 0
3 s = 0
4 while k<n:
5 k = k+1
6 s = s+k
7 return s
8
9print(f(3))
10
11
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 전역 변수 활용 함수 142.py

global 키워드로 함수에서 전역 변수를 변경합니다
📄 142.py
1s = 0
2def f(n):
3 global s
4 k = 0
5 while k<n:
6 k = k+1
7 s = s+k
8
9f(3)
10print(s)
11
12
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 합계 반환 함수 143.py

for문으로 1~n 합을 구해 return하는 함수
📄 143.py
1def f(n):
2 s = 0
3 for k in range(1, n+1):
4 s = s+k
5 return s
6
7n = int(input())
8
9print(f(n))
10
11
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 난수 생성 146.py

random 모듈로 무작위 정수를 생성합니다
📄 146.py
1from random import *
2n = int(input())
3for i in range(n):
4 print(randint(1, 100))
5
6
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 시드 고정 난수 147.py

seed()로 난수 순서를 고정하여 재현 가능하게 합니다
📄 147.py
1from random import *
2seed(1)
3n = int(input())
4for i in range(n):
5 print(randint(1, 100))
6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 파일 처리

📌 파일 쓰기 기초 155.py

open()과 write()로 텍스트 파일을 생성합니다
📄 155.py
1f = open("out.txt", "w")
2
3f.write("hello\n")
4f.write("world\n")
5
6f.close()
7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 반복으로 파일 쓰기 156.py

for문을 이용해 여러 줄을 파일에 기록합니다
📄 156.py
1f = open("out.txt", "w")
2
3n = int(input())
4
5for i in range(n):
6 d = int(input())
7 f.write(str(d))
8 f.write("\n")
9
10f.close()
11
12
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 파일 읽기 기초 158.py

read()로 파일 전체를 읽어 출력합니다
📄 158.py
1f = open("in.txt", "r")
2rows = (f.read()).split("\n")
3f.close()
4
5for row in rows:
6 print(row)
7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 파일에서 검색 159.py

파일을 읽어 특정 데이터를 찾는 예제
📄 159.py
1f = open("in.txt", "r")
2rows = (f.read()).split("\n")
3f.close()
4
5n = int(input())
6
7for row in rows[:n]:
8 print(int(row))
9
10
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 CSV 파일 읽기 161.py

CSV 파일을 읽어 데이터를 처리합니다
📄 161.py
1f = open("data.csv", "r", encoding="utf-8-sig")
2rows = (f.read()).split("\n")
3f.close()
4
5for 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
1rows = [["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
6f = open("dataout.csv", "w")
7
8for row in rows:
9 for value in row[:-1]:
10 f.write(str(value)+",")
11 f.write(str(row[-1])+"\n")
12
13f.close()
14
15
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 난수 파일 저장 166.py

random으로 생성한 난수를 파일에 저장합니다
📄 166.py
1from random import *
2seed(1)
3
4n = int(input())
5
6f = open("in1.txt", "w")
7for i in range(n):
8 f.write(str(randint(0,100))+"\n")
9f.close()
10
11f = open("in2.txt", "w")
12for i in range(n):
13 f.write(str(randint(0,100))+"\n")
14f.close()
15
16f1 = open("in1.txt", "r")
17f2 = open("in2.txt", "r")
18f3 = open("sum.txt", "w")
19f4 = open("minmax.txt", "w")
20
21for 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
27f1.close()
28f2.close()
29f3.close()
30f4.close()
31
32
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 파일 프로젝트

📌 두 수의 합 (입력) 168_1.py

한 줄에 두 수를 입력받아 합을 출력합니다
📄 168_1.py
1a, b = input().split()
2a = int(a)
3b = int(b)
4
5print(a+b)
6print(a-b)
7print(a*b)
8print(a/b)
9print(a//b)
10print(a%b)
11print(a**b)
12
13
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 조건 필터 출력 168_2.py

2의 배수이면서 3의 배수가 아닌 수를 출력합니다
📄 168_2.py
1n = int(input())
2
3for 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
1n, m = input().split()
2
3n = int(n)
4m = int(m)
5for 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
1n = int(input())
2
3while n>0:
4 print("*", end="")
5 n = n-1
6
7
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 3의 배수 건너뛰기 169_1.py

continue로 3의 배수를 건너뛰며 출력합니다
📄 169_1.py
1n = int(input())
2while n>0:
3 n = n-1
4 if n%3==0:
5 continue
6 print(n, end=" ")
7
8
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 소수 판별 함수 169_2.py

while문으로 소수를 판별하는 예제
📄 169_2.py
1n = int(input())
2
3k = 2
4while k<n:
5 if n%k==0:
6 break
7 k = k+1
8
9if k==n:
10 print("prime")
11else:
12 print("composite")
13
14
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 큰 값 반환 함수 169_3.py

두 수를 비교하여 큰 값을 return합니다
📄 169_3.py
1def f(a, b):
2 if a>b:
3 return a
4 else:
5 return b
6
7n, m, k = map(int, input().split())
8
9print(f(f(n, m), k))
10
11
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 반복 출력 함수 호출 169_4.py

같은 수를 여러 번 출력하는 함수를 활용합니다
📄 169_4.py
1def f(a):
2 for i in range(1, a+1):
3 print(a, end=" ")
4
5n = int(input())
6
7for i in range(1, n+1):
8 f(i)
9 print()
10
11
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요
🏗️ III단원

설계와 구현

📖 비만도 측정

📌 BMI 비만도 측정 195.py

키와 몸무게로 BMI를 계산하고 비만도를 판정합니다
📄 195.py
1# 입력 처리
2h,w = input().split()
3h = float(h)
4w = float(w)
5
6# 키에 따른 표준 몸무게 계산
7if h<150:
8 stdw = h-100
9elif h<160:
10 stdw = (h-150)/2+50
11else:
12 stdw = (h-100)*0.9
13
14# 비만도 계산
15bmi = (w-stdw)*100/stdw
16
17# 비만도 판정
18if bmi<=10:
19 print("정상")
20elif bmi<=20:
21 print("과체중")
22else:
23 print("비만")
24
25
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 일차 방정식

📌 일차 방정식 풀기 200.py

ax+b=c 형태의 방정식을 문자열 파싱으로 풀어냅니다
📄 200.py
1# 입력 처리(ax+b=c)
2eq = input()
3a,b = eq.split('x') # 'x'를 기준으로 문자열 분리
4b,c = b.split('=') # '='를 기준으로 문자열 분리
5
6# 정수로 자료형 변환
7a = int(a)
8b = int(b)
9c = int(c)
10
11# x값 구하기
12x = (c-b)/a
13
14# 출력 처리
15print("{:.2f}".format(x)) # 반올림해서 출력
16
17
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 이달의 날짜

📌 이달의 날짜 수 203.py

윤년을 고려하여 해당 월의 날짜 수를 계산합니다
📄 203.py
1# 입력 처리(연도, 월 입력 후 정수로 변환)
2y, m = input().split()
3y = int(y)
4m = int(m)
5
6# 각 월의 마지막 날 정리.
7lastday = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
8
9if m==2: # 2월인 경우
10 if y%400==0 or y%4==0 and y%100!=0: # 윤달이면
11 lastday[2] += 1
12
13# 마지막 날 출력
14print(lastday[m])
15
16
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 철근 자르기

📌 철근 자르기 208.py

철근 길이와 간격으로 절단 횟수를 계산합니다
📄 208.py
1# 입력 처리
2n,k = input().split()
3n = int(n)
4k = int(k)
5
6# 철근 길이로 자재 번호 계산
7count = n//k
8if count>9999: # 자재 번호가 9999를 초과하면
9 status = False # 오류 상태
10else:
11 status = True # 출력 가능 상태
12
13# 상태에 따라 출력
14if status: # 출력 가능 상태이면
15 for x in range(1,count+1):
16 print("F-{:04d}".format(x)) # F-xxxx 형태로 출력
17else:
18 print("번호 초과 오류")
19
20
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 바코드 검증

📌 바코드 검증 212.py

12자리 바코드의 검증 코드를 계산하여 유효성을 확인합니다
📄 212.py
1# 바코드 열두 자리를 입력받음
2code = input()
3
4sum = 0 # 합을 저장하는 변수
5pos = 0 # 몇 번째 위치인지 나타내는 변수
6
7# 반복문으로
8for 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
15res = (10-(sum%10))%10 # 검증 수 구하기
16
17print(code+str(res)) # 열세 자리 바코드 출력
18
19
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 암호 해독

📌 시저 암호 해독 217.py

알파벳을 시프트하여 암호문을 만들고 해독합니다
📄 217.py
1# 입력 처리(암호문)
2inp = input()
3res = "" # 원문 저장
4
5for 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# 출력 처리
18print(res)
19
20
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 파이값 근사

📌 몬테카를로 파이 계산 220.py

무작위 점으로 원주율 π를 근사하는 알고리즘
📄 220.py
1# 입력 처리
2n = int(input())
3points = [] # 무작위 점들의 리스트
4for i in range(n):
5 xy = list(map(int, input().split())) # x, y 좌푯값 입력
6 points.append(xy) # 점을 리스트에 추가
7
8# 원 안에 들어가는 점의 개수 세기
9inp = 0
10for x,y in points:
11 if x**2+y**2 <= 1000**2: # 원의 반지름은 1000, 피타고라스 정리
12 inp += 1 # inp 값 1 증가
13
14pi = (4*inp)/n # 파이(π)값 계산식
15
16# 출력 처리(소수점 여섯째 자리까지 출력)
17print("{:.6f}".format(pi))
18
19
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📌 터틀 파이 시각화 222.py

turtle 그래픽으로 몬테카를로 π 추정을 시각화합니다
📄 222.py
1import turtle
2import random
3
4# 터틀 초기화
5t = turtle.Turtle( )
6t.speed(0)
7t.hideturtle( )
8
9# 변수 초기화
10inp = 0 # 원 안에 들어간 점의 개수
11pi = 0 # pi 추정값
12r = 300 # 반지름 300픽셀로 지정
13
14# 10000번 반복
15for 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값 출력
10if 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# 입력 처리
2paper = []
3n,m = input().split()
4n = int(n)
5m = int(m)
6
7# 중첩 반복문
8for 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# 출력 처리
23for row in paper:
24 print(row)
25
26
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 복면산 문제

📌 복면산 퍼즐 (SOT) 232.py

3중 반복으로 SOT+SOT=TOT 복면산을 풀어냅니다
📄 232.py
1# 3중 반복문(S,O,T의 값을 순서대로 대입해서 계산)
2for S in range(0,10):
3 for O in range(0,10):
4 if O==S: # S와 O가 같은 숫자인 경우 다음 반복으로
5 continue
6 for T in range(0,10):
7 if T==S or T==O: # T와 S, O가 같은 숫자인 경우 다음 반복으로
8 continue
9 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# 입력 처리
2a = list(map(int, input().split()))
3b = list(map(int, input().split()))
4
5# 원의 겹침 여부 판별하는 함수(겹치는 점의 개수를 리턴)
6def f(a,b):
7 dist = ((a[0]-b[0])**2 + (a[1]-b[1])**2)**0.5
8 if dist > a[2]+b[2]:
9 return 0
10 elif dist == a[2]+b[2]:
11 return 1
12 elif dist == abs(a[2]-b[2]):
13 return 1
14 elif dist < abs(a[2]-b[2]):
15 return 0
16 else:
17 return 2
18
19# 출력 처리(겹치는 경우, 접하는 경우, 겹치지 않는 경우)
20if f(a,b)==2: # 겹치는 점이 2개인 경우
21 print("overlapped")
22elif f(a,b)==1: # 겹치는 점이 1개인 경우
23 print("tangent")
24else: # 겹치지 않는 경우
25 print("not overlapped")
26
27
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 철광석 제련

📌 철광석 지뢰찾기 239.py

2차원 배열에서 주변 지뢰 수를 세는 알고리즘
📄 239.py
1# 입력 처리(2차원 리스트)
2mines = []
3for row in range(5):
4 x = list(map(int, input().split()))
5 mines.append(x)
6
7# (row, col) 주변의 가치 합을 구하는 함수
8def f(row, col):
9 res = 0
10 for i in range(row-1, row+2):
11 for j in range(col-1, col+2):
12 res += mines[i][j]
13 return res
14
15# ① → ② → … → ⑨를 탐색하며 최대 가치 구함.
16maxval = 0
17for row in range(1, 4):
18 for col in range(1, 4):
19 sum = f(row,col)
20 if sum>maxval:
21 maxval = sum
22
23# 출력 처리(최대 가치 출력)
24print(maxval)
25
26
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 3등 찾기

📌 3등 찾기 알고리즘 244.py

n개의 점수에서 3번째로 큰 값을 찾습니다
📄 244.py
1# 입력 처리
2n = int(input())
3data = []
4
5for x in range(n):
6 a,b = input().split()
7 data.append([a, int(b)])
8
9# 데이터 정렬
10data.sort(key = lambda x: -x[1]) # 정보 점수의 내림차순으로 정렬
11
12# 출력 처리(3등이므로 인덱스는 2)
13print(data[2][0]) # [2][0]: 이름, [2][1]: 점수
14
15
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요

📖 도서 대출

📌 도서 대출 시스템 249.py

딕셔너리로 도서 대출/반납을 관리하는 프로그램
📄 249.py
1# 입력 처리
2n = int(input())
3books = {} # 대출 리스트 딕셔너리 생성
4
5# 대출 리스트에 book을 추가
6def addBook(book):
7 if book in books: # 대출 리스트에 도서가 있는 경우
8 books[book] += 1
9 else: # 대출 리스트에 도서가 없는 경우
10 books[book] = 1
11
12# 대출 리스트에서 book을 제거
13def delBook(book):
14 if book in books: # 대출 리스트에 도서가 있는 경우
15 books[book] -= 1
16 if books[book]==0: # 도서 대여 개수가 0인 경우
17 del books[book] # 대출 리스트에서 삭제
18 else:
19 print("no book!") # 대출 리스트에 도서가 없는 경우 에러 출력
20
21# 대출 리스트 출력
22def printBooks(books):
23 for k,v in books.items(): # 딕셔너리의 키와 값을 순서대로 k,v에 저장
24 print(k, v) # 키와 값 출력
25
26# 명령어 처리
27for 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# 입력 처리
2n = int(input())
3A = set(map(int, input().split())) # 집합 자료 구조
4m = int(input())
5B = set(map(int, input().split())) # 집합 자료 구조
6
7s1 = A & B # 교집합 연산
8s2 = A | B # 합집합 연산
9
10if len(s1)==0: # 공집합이면 0 출력
11 print(0, end='')
12else: # 공집합이 아니면
13 for x in sorted(s1): # 교집합의 원소를 오름차순으로 출력
14 print(x, end=' ')
15print() # 한 줄 띄우고
16for x in sorted(s2): # 합집합의 원소를 오름차순으로 출력
17 print(x, end=' ')
18
19
속도
🐍▶를 눌러 시작해봐요!
📺 출력 결과
아직 아무것도 출력되지 않았어요