데이터 분석 입문

Chapter.2 데이터 분석 입문(5)

devjjun 2026. 3. 31. 20:59

TIL(Today I Learned)


1️⃣데이터 분석 미션

 

자동차 도메인의 다양한 시각화 사례와 실제 데이터를 plotly를 활용하여 시각화하였고, 실제 기사 등에 활용 된 시각화 사례들이 어떠한 오류를 가지고 있는지 사례를 통해 설명하였다.

 

QAQC 5기 미션.pdf
1.87MB


2️⃣Python 알고리즘 주요 문제 

문제1

    • 문제 설명: 코니는 영어 단어가 적힌 카드 뭉치 두 개를 선물로 받았습니다. 코니는 다음과 같은 규칙으로 카드에 적힌 단어들을 사용해 원하는 순서의 단어 배열을 만들 수 있는지 알고 싶습니다.
  • 원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용합니다.
  • 한 번 사용한 카드는 다시 사용할 수 없습니다.
  • 카드를 사용하지 않고 다음 카드로 넘어갈 수 없습니다. 기
  • 존에 주어진 카드 뭉치의 단어 순서는 바꿀 수 없습니다.
    • 제한 사항
      • 1 ≤ cards1의 길이, cards2의 길이 ≤ 10
      • 1 ≤ cards1[i]의 길이, cards2[i]의 길이 ≤ 10
      • cards1과 cards2에는 서로 다른 단어만 존재합니다.
      • 2 ≤ goal의 길이 ≤ cards1의 길이 + cards2의 길이1 ≤ goal[i]의 길이 ≤ 10
      • goal의 원소는 cards1과 cards2의 원소들로만 이루어져 있습니다.
      • cards1, cards2, goal의 문자열들은 모두 알파벳 소문자로만 이루어져 있습니다.
  • 입출력 예

  • 문제 접근: 이터레이터 i와 j를 선언하고 for문으로 goal 내부의 문자열을 순회한다. i가 cards1의 길이보다 작고 goal 내부의 요소와 cards1의 i번째 인덱스의 값이 같을 때 i값을 증가시킨다.  이를 j와 cards2에도 동일하게 적용하고 조건에 충족시키지 못하면 No를 반환한다. 
  • 코드
더보기
더보기
더보기
def solution(cards1, cards2, goal):
    i,j=0,0
    for word in goal:
        if i < len(cards1) and word == cards1[i]:
            i += 1
        elif j < len(cards2) and word == cards2[j]:
            j += 1
        else:
            return 'No'
    return 'Yes'

문제2

  • 문제 설명: 
    • 사과 점수들이 담긴 배열 score가 있음
    • 한 상자에 m개씩 담아서 판매
    • 상자의 가격 = 그 상자 안에서 가장 낮은 점수 × m
    • 목표: 최대 이익 구하기
  • 입출력 예

  • 문제 접근: score을 내림차순으로 정렬한 뒤 앞에서부터 m개씩 자르고 각 묶음의 마지막 값 × m 해서 더하기
  • 코드
더보기
더보기
더보기
def solution(k, m, score):
    answer = 0
    score.sort(reverse=True)
    for i in range(0,len(score),m):
        if i+m <= len(score):
            answer += score[i+m-1] *m
    return answer

💡 느낀점

미션을 수행하며 실제 데이터를 전처리하고 plotly 라이브러리를 통해 시각화하며 기본적인 흐름에 대해 이해할 수 있었고, 시각화의 오류 사례들을 찾아보고 분석하며 시각화시에 주의해야 할 점과 어떻게 해야 데이터가 쉽게 인지될 수 있을지 고민할 수 있는 시간이었다.