[2025.12.04] 오늘의 학습 키워드 - 파이썬 알고리즘 코드 및 csv파일 응용

허진원·2025년 12월 4일

내일배움캠프 TIL

목록 보기
28/41

휴식 시간에 창 밖을 보았다. 눈이 내리는 것이 아닌가. 벌써 눈이 내릴 시기가 되었다니, 겨울이 왔다는 것이 드디어 실감나면서도 시간 참 빠르다고 생각하게 된다.

비록 비대면이긴 하지만, 캠프 생활을 하면서 밖에 나갈 일이 좀처럼 없다보니, 더더욱 밖을 볼 일이 없어졌다. 정신 건강을 위해서라도 이따금씩 바깥 공기를 마시러 잠깐 집 앞이라도 마실을 나가야 할 것 같다.

  1. 오늘 학습 키워드
  • 파이썬 기초 알고리즘 코드 작성 실습
  1. 학습한 내용을 나만의 언어로 정리하기
    오늘 진행되었던 파이썬 기초 알고리즘 라이브 세션을 수강하고, 곧바로 실습 문제를 풀어보았다. 어제 했던 내용에 비해서 오늘은 실습 문제가 더 쉽게 느껴졌다.

어제 풀었던 pandas 과제 중 도전 문제를 풀어보기도 했다. 문제 해설을 수강하고 난 뒤에 시도하는 것이긴 하지만, 코드를 내 손으로 직접 작성해보고 조건을 조금씩 바꾸면서 실행해보면 실력 향상에 도움이 될 것이라고 생각한다.

통계학 기초도 계속 시청 중이다. 오늘은 파이썬 코드 작성 실습에 시간을 많이 써서 진도를 많이 나가지는 못 했다. 진도를 나갈 수록 난이도가 어려워지고 있어서 걱정이 되긴 한다...만, 그러도 어쩌겠는가! 꾸준히, 열심히 반복해서 공부할 따름이다.

  1. 학습 내용

파이썬 기초 알고리즘 코드 실습

1)

if문을 사용해서 점수 구간마다 성적을 부여하는 코드를 작성해야 한다. 풀이 힌트에도 나와 있듯이, 가장 넓은 범위 혹은 가장 큰 조건을 if문의 상단에 배치하고, 범위가 좁아지는 순서대로 나열하는 것이 코드를 작성하기에 편하다.

x = int(input())

if x >= 90:
    print("A")
elif x >= 80:
    print("B")
elif x >= 70:
    print("C")
else:
    print("F")

input 함수를 사용해서 사용자가 직접 점수를 입력하도록 했다. 이 때, 조건식이 x를 숫자형 데이터로 인식할 수 있도록 int() 함수를 씌워야 한다.

2)

for문의 사용법을 연습해보는 문제이다. 범위를 range() 함수로 직접 지정해주고, 짝수만 출력하도록 조건을 달아주었다.

for i in range(1, 11):
    if i % 2 == 0:
        print(i)

가장 이상적인 방식일 것이다. 이 외에도 range() 함수의 기능을 활용해서 짝수만 출력하는 것도 가능하다. 다만, 이렇게 하면 숫자가 0부터 시작하거나, 2부터 시작하게 된다는 점을 주의해야 한다.

for i in range(0, 11, 2):
        print(i)

3)

리스트의 인덱스와 값을 함께 추출해야 하는 실습 문제이다. 실습 문제의 주제에도 쓰여있듯이, enumerate 함수를 사용해서 리스트의 각 값에 인덱스 값를 부여해서 끌어올 수 있게 해주어야 한다.

fruits = ["apple", "banana", "cherry"]

for idx, fruit in enumerate(fruits):
    print(f"{idx}번 째 과일: {fruit}")

4)

zip() 함수로 두 리스트의 값을 한꺼번에 출력해보는 실습 문제이다. 출력하고 싶은 변수를 순서대로 for문 안에 입력한 후, zip() 안에 적절한 리스트를 넣으면 된다.

names = ["Kim", "Lee", "Park"]
scores = [90, 85, 77]

for name, score in zip(names, scores):
    print(f"{name}의 점수는 {score}점입니다.")

5)

zip 함수와 조건문을 동시에 사용해보는 과제였다. 각 학생의 이름마다 점수를 부여하고, 특정 기준을 만족하는 학생의 경우에만 특정 문구를 출력하도록 하는 코드를 작성해야 한다.

이 경우에는 90점 이상의 성적을 기록한 학생만 "PASS"를 출력하도록 하면 된다.

students = ["Kim", "Lee", "Park", "Choi"]
scores = [92, 85, 97, 70]

for student, score in zip(students, scores):
    if score >= 90:
        print(f"{student} - PASS")

90점 이상을 기록하지 못한 학생에 대해서도 특정 문구를 출력하도록 하고 싶다면, else를 추가하여 나머지 학생들에 대해서 출력할 문구를 설정할 수 있다. 90점 이상이 "PASS"였으니, 나머지는 "FAIL"로 설정해보자.

for student, score in zip(students, scores):
    if score >= 90:
        print(f"{student} - PASS")
    else:
        print(f"{student} - FAIL")

이상으로 오늘 진행한 파이썬 기초 알고리즘 실습 및 과제 문제를 모두 풀어보았다. 침착하고 천천히 생각해보면 충분히 풀 수 있는 문제들이었다.

  1. 학습하며 느낀 점
    오늘의 라이브 세션을 통해서, 앞으로 다른 문제들을 만나더라도 차근차근 문제에 접근하면 풀어낼 수 있을 것이라는 자신감을 얻었다.

어제 풀어보았던 pandas 문제들도 알고리즘 문제들과 마찬가지로 천천히 생각해보면 충분히 풀어낼 수 있을 만한 문제들이었다. 다음에 문제를 만나게 되면, 너무 쫄지 말고 한 번 풀이를 시도해보자고 다짐했다.

마치며 : 알고리즘 기초가 끝나고, 내일부터는 SQL을 다시 돌아보는 시간을 가지게 된다. 그 동안 SQL 문법도 많이 잊었다. 이번 기회에 다시 기억을 되살려서 두 언어 모두 자유롭게 구사할 수 있게 되었으면 좋겠다.

profile
국문과 전공 데이터 입문자

0개의 댓글