
| 포맷 | 특징 | 속도/크기 |
|---|---|---|
| CSV, TXT | 일반적, 사람이 읽기 쉬움 | 느림 / 큼 |
| JSON | 딕셔너리 형식, API에 사용 | 느림 / 큼 |
| Pickle | Python 전용, 빠름 | 빠름 / 중간 |
| Parquet | 대용량 처리에 최적화 | 빠름 / 작음 |
| 기타 | Arrow, Feather 등 | 상황에 따라 선택 |

문제 1 ) 정수 a, b를 입력받아 합과 곱을 두 줄로 출력하라.
입력: 3 4 출력: 정수 3과 4의 합은 7입니다. 정수 3과 4의 곱은 12입니다.
a, b = map(int,input("숫자를 입력하세요(공백 구분) :").split())
print(f"정수 {a}와(과) {b}의 합은 {a+b} 입니다.")
print(f"정수 {a}와(과) {b}의 곱은 {a*b} 입니다.")
문제 2 ) 문자열을 한 줄 입력받아 뒤집은 결과를 출력하라.
입력: apple 출력: elppa
word = input("문자열을 입력하세요:")
print(f"출력 : {word[::-1]}")
문제 3 ) 1 ~ n까지의 수 중 짝수만 더해 합을 출력하라. n은 정수 입력.
n = int(input("숫자 입력하세요 : "))
total = 0
for i in range(n):
if i % 2 == 0:
total += i
print(total)
문제 4 ) 쉼표로 구분된 과일 이름을 입력받아 리스트로 변환 후 출력한다.
입력: apple,banana,grape 출력: ['apple', 'banana', 'grape']
words = input("과일 이름을 입력하세요(쉼표구분) :").split(",")
print(f"출력 {words}")
문제 5 ) 문자열 형태의 비밀번호를 입력받아 길이가 8 이상이면 "OK", 아니면 "Too Short"를 출력.
password = input("비밀번호를 입력하세요 : ")
if len(password) >= 8:
print(f"입력한 비밀번호 : {password} / OK")
else:
print(f"입력한 비밀번호 : {password} / Too short")
문제 6 ) 쉼표로 구분된 숫자들을 입력 받아, 최대-최소 차이를 "차이: 7" 형식으로 출력.
입력 : [5, 1, 2, 3, 9, 123] 출력 : 차이:122
numbers = input("숫자를 입력하세요(쉼표 구분):").split(",")
numbers = list(map(int, numbers))
print(f"차이 : {max(numbers) - min(numbers)}")
문제 7 ) 이름 리스트 ["Anna","Ben","Cara"]가 주어져 있다. input()으로 이름을 받아 리스트에 있으면 "제출 완료", 없으면 "미제출" 출력.
names = ["Anna","Ben","Cara"]
name = input("이름을 입력하세요 : ")
if name in names:
print("제출 완료")
else:
print("미제출")
문제 8) {"Korea":"Seoul","Japan":"Tokyo","USA":"Washington"} 딕셔너리를 값→키 형식으로 뒤집어 출력하여라.
입력 : {"Korea":"Seoul","Japan":"Tokyo","USA":"Washington"} 출력 : {"Seoul":"Korea","Tokyo":"Japan","Washington":"USA"}
country = {"Korea":"Seoul","Japan":"Tokyo","USA":"Washington"}
reversed = {v:k for k, v in country.items()}
print(reversed)
문제 9 Dog 클래스를 정의하라.
- 속성 : name
- 메서드 bark() → "월월! 내 이름은 초코야" 형식 출력
- 객체 두 개를 만들어 짖게 하시오.
출력 월월! 내 이름은 초코야 월월! 내 이름은 사랑이야
class Dog:
def __init__(self, name):
self.name = name
def bark(self):
print(f"월월! 내 이름은 {self.name}야!")
dog1 = Dog("초코")
dog2 = Dog("사랑이")
dog1.bark()
dog2.bark()
응용문제 1 정수 n을 입력받아
1. 약수 리스트를 구하는 함수 divisors(n)
2. 약수 개수가 2개면 소수이므로 "Prime" 아니면 "Not Prime"을 출력.
요약하면, 정수 n의 소수인지 아닌지 판단하는 함수를 구하고, 약수를 모두 출력하시오.
- HINT. 소수란 1과 자기 자신으로만 나누어 떨어지는 수다.. 즉, 약수가 2개밖에 없다는 것!
def divisors(n):
return [i for i in range(1, n+1) if n % i == 0]
def is_prime(n):
div = divisors(n)
print("약수 :", div)
if len(div) == 2:
print("Prime")
else:
print("Not Prime")
n = int(input("정수를 입력하세요: "))
is_prime(n)
응용문제 2 input() 세 번으로 "이름 점수" 형식 데이터를 받아 {'Hong': 91, 'Kim': 87, 'Lee': 73} 딕셔너리를 만든 뒤, 조건문으로 평균 90↑ A / 80↑ B / 70↑ C / else D 등급을 이름 옆에 출력하시오.
입력: Hong 91 Kim 87 Lee 73 출력: Hong A Kim B Lee C
scores = {}
for _ in range(3):
info = input("이름과 점수 입력하세요(공백 구분)")
name, score = info.split()
scores[name] = int(score)
for name, score in scores.items():
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
else:
grade = 'D'
print(f"{name} : {score}점 / 등급 : {grade}")
응용문제 3 students=[("Amy",90),("Bob",90),("Cara",85)] 점수 내림차순, 점수 같으면 이름 오름차순으로 정렬해 리스트 출력하시오.
students=[("Amy",90),("Bob",90),("Cara",85)]
def sort_key(student):
name, score = student
return (-score, name)
students.sort(key=sort_key)
print(students)
심화문제 1 사용자로부터 문자열을 하나 입력받아, 해당 문자열에 포함된 모음('a', 'e', 'i', 'o', 'u')의 개수를 세어 출력하세요.
단, 대소문자 구분 없이 처리하고, 문자열에 알파벳이 아닌 문자가 섞여 있어도 모음만 정확히 세면 됩니다.테스트 케이스 (입력 → 기대출력) 1. "Hello, World!" → 3 2. "Python" → 1 (y는 모음이 아님. p, y, t, h, o, n 중 'o' 1개만 모음) 3. "AEIOU" → 5 (대문자도 모음 모두 포함) 4. "zzz" → 0 (모음 없음) 5. "I love Python 3.8!" → 4 (i, o, e, o 총 4개)
text = input("문자열을 입력하세요: ").lower()
def count_vowels(text):
vowels = 'aeiou'
count = 0
for char in text:
if char in vowels:
count += 1
return count
print(count_vowels(text))
심화문제 2 다음과 같은 튜플이 주어져 있다고 가정하세요: fruits = ("apple", "banana", "cherry", "orange", "grape") 사용자로부터 과일 이름 하나를 입력받아, 해당 과일이 튜플 fruits 안에 존재하면 "존재합니다"를, 존재하지 않으면 "존재하지 않습니다"를 출력하세요. 단, 존재하는 경우 해당 과일의 인덱스도 함께 출력하세요.
테스트 케이스 (입력 → 기대출력)
1. "apple" → "존재합니다" / "인덱스: 0"
2. "banana" → "존재합니다" / "인덱스: 1"
3. "grape" → "존재합니다" / "인덱스: 4"
4. "melon" → "존재하지 않습니다" (melon은 튜플에 없음)
5. "Cherry" → "존재하지 않습니다" (대소문자 구분, cherry는 소문자로만 존재)
fruits = ("apple", "banana", "cherry", "orange", "grape")
fruit = input("과일 이름을 입력하세요 : ")
if fruit in fruits:
index = fruits.index(fruit)
print(f"존재합니다 / 인덱스 : {index}")
else:
print("존재하지 않습니다.")
심화문제 3 사용자로부터 정수들을 공백으로 구분하여 입력받아 리스트로 저장한 뒤, 해당 리스트를 오름차순 정렬하고, 리스트 내 원소 중 짝수만 골라 그 합을 출력하세요. 단, 짝수가 하나도 없으면 합은 0을 출력하세요.
테스트 케이스 (입력 → 기대출력) 1. "4 7 2 9 10" → 정렬: [2,4,7,9,10], 짝수합: 16 2. "1 3 5" → 정렬: [1,3,5], 짝수 없음, 출력: 0 3. "2 2 2" → 정렬: [2,2,2], 짝수합: 6 4. "10 5 2" → 정렬: [2,5,10], 짝수합: 12 5. "9 1 8 3" → 정렬: [1,3,8,9], 짝수합: 8
def is_even_sum():
numbers = list(map(int, input("숫자를 입력하세요 (공백 구분) : ").split()))
sort_nums = sorted(numbers)
total = sum(num for num in sort_nums if num % 2 == 0)
print(f"{numbers} → 정렬: {sort_nums}, 짝수합 : {total}")
is_even_sum()
추가문제 1 사용자로부터 콤마(,)로 구분된 단어들을 입력받아 리스트로 만든 뒤, 각 단어의 길이를 딕셔너리에 {단어: 길이} 형태로 저장하고 출력하세요. 그 후, 길이가 5글자 이상인 단어들만 "5글자 이상 단어:" 라는 문구와 함께 모두 출력하세요.
테스트 케이스 (입력 → 기대출력) 1. "apple,cat,banana,hi,python" → {'apple': 5, 'cat': 3, 'banana': 6, 'hi': 2, 'python': 6}, "5글자 이상 단어: apple banana python" 2. "dog,cat,mouse" → {'dog': 3, 'cat': 3, 'mouse': 5}, "5글자 이상 단어: mouse" (mouse만 5글자 이상) 3. "hi,bye" → {'hi': 2, 'bye': 3}, "5글자 이상 단어:" (없으므로 뒤에 아무것도 출력 안 함) 4. "Hello,world,test,condition" → {'Hello': 5, 'world': 5, 'test': 4, 'condition': 9}, "5글자 이상 단어: Hello world condition" 5. "a,b,c,d,e" → {'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1}, "5글자 이상 단어:" (전부 한 글자)
words = list(map(str.strip, input("단어들을 입력하세요 (콤마 구분): ").split(",")))
length = {word : len(word) for word in words}
long_word = [word for word in words if len(word) >= 5]
print(f"{words} → {length}, 5글자 이상 단어 : {long_word}")
Python - 두 개 뽑아서 더하기
Python - 가장 가까운 글자
SQL - Employee Bonus
SQL - Managers with at Least 5 Direct Reports
코드카타 49-50 ✅코드카타 87,89 ✅아답터 1과목 ✅2회차 과제 ✅ 1회차 복습 ✅1주차 ✅ 각오하긴 했는데 종합복습반 복습 예습이 너무 빡세다 . . !
오전에 하루종일 잡고 있어야 가능하고, 끝나고 나서도 복습하는 데 한참 걸림 😅 내용정리도 어디서부터 해야할지 모르겠다
사실상 SQLD에 집중해야 하는 상황이라 이것저것 뭔가 많이 하기가 힘들다
새로 받아온 약 먹으면 또 졸려서 효율이 안 나는 상황이기도 함 . . . 일단 내일부터는 SQLD 모의고사부터 슬슬 풀어봐야겠다
SQLD 빠이팅 ... 👊👊 꼭 같이 합격해요 ...