Today I Learned

[내일배움캠프 QA/QC 6기] TIL #045

JiJi0406 2026. 7. 15. 23:29

001

오늘의 코드카타

51. 푸드 파이트 대회

 

 

문제 설명

  • 진행 방식: 두 선수가 양 끝에서 출발해 가운데 놓인 물(0)을 향해 음식을 먹으며 전진함. (먼저 물을 먹으면 승리)
  • 룰: 두 선수는 칼로리가 낮은 음식부터 순서대로, 정확히 같은 종류와 개수의 음식을 먹어야 함.
  • 목표: 주어진 음식 개수 배열 food로 대칭형 음식 배치 문자열을 만들기 (남는 음식은 버림).

예시: food = [1, 3, 4, 6] (물 1개, 1번 3개, 2번 4개, 3번 6개)

  • 한 사람이 먹을 몫: 1번 1개 (3 / 2), 2번 2개 (4 / 2), 3번 3개 (6 / 2)
  • 완성된 배치: "122333 0 333221" (가운데 0을 기준으로 데칼코마니)

 

 

제한사항

  • 2 ≤ food의 길이 ≤ 9
  • 1 ≤ food의 각 원소 ≤ 1,000
  • food에는 칼로리가 적은 순서대로 음식의 양이 담겨 있습니다.
  • food[i]는 i번 음식의 수입니다.
  • food[0]은 수웅이가 준비한 물의 양이며, 항상 1입니다.
  • 정답의 길이가 3 이상인 경우만 입력으로 주어집니다.

 

▼ 내 풀이

더보기
def solution(food):
    answer = []
    for i, count in enumerate(food):
        if i == 0:
            pass
        else:
            if count >= 2:
                answer += [i] * (count // 2)
            else:
                pass
    return ''.join(map(str, answer)) + '0' + ''.join(map(str, answer[::-1]))

 

아이고 지저분해라

 

def solution(food):
    # 1. 왼쪽 선수가 먹을 음식 배치 만들기
    left = ''.join(str(i) * (count // 2) for i, count in enumerate(food) if i > 0)
    
    # 2. 왼쪽 + 물(0) + 오른쪽(뒤집기) 합쳐서 리턴
    return left + '0' + left[::-1]

 

젬선생이 내 코드 더 깔끔하게 만들어준 것

확실히...

 


 

002

오늘 학습한 내용

 

[ 태블로 실습 1 ]

신세계

 

차트별 필드 배치 및 KPI

오늘은 차트 종류별로 어디에 뭘 넣는지 직접 만들어본 날. 나중에 까먹을 것 같은 것들만 정리

 

 

1. 시각화 3가지 방법

1) 더블클릭

2) 드래그 앤 드롭

3) 표현 방식 (Show Me)

  • 차원/측정값 여러 개를 컨트롤 키 누르고 같이 선택 → 우측 상단 표현방식 클릭하면 그 조합으로 가능한 차트들이 활성화

 

2. 차트별 필드 배치 - 실습 정리 

1) 막대 차트 (범주별 값 비교)

2) 라인 차트 (시간 흐름에 따른 변화)

3) 맵 차트 (지역별 값 비교)

  • 지리적 역할 부여 필요(데이터 타입 아이콘 클릭 → 국가/시도/시군구 지정)

4) 파이 차트 (전체 대비 비율)

  • 퀵테이블 계산으로 구성비율 표시

5) 트리맵 (계층적 데이터, 면적으로 표현)

  • 크기: 합계(매출) / 색상: 합계(수익) / 레이블: 하위범주, 합계(매출) → 구성비율
  • 마크 타입을 원으로 바꾸면 버블차트, 텍스트로 바꾸면 워드클라우드가 됨

 

3. 연속형 vs 불연속형 날짜

  • 불연속형(파란색): 날짜를 구간별로 끊어서 독립적 카테고리처럼 취급 → 헤더로 표시
  • 연속형(초록색): 날짜를 하나의 이어진 축으로 표현 → 축(Axis)으로 표시 → 라인차트에서 추세를 보고 싶으면 연속형, 구간별로 나눠보고 싶으면 불연속형 선택

 

4. 계층(Hierarchy) 만들기

  • 필드를 겹친 상태로 드랍하면 계층 만들기 창이 뜸 (예: 국가 > 시도 > 시군구)
  • 필드 상하 순서가 계층 순서로 인식되니까 순서 주의

 

5. 퀵 테이블 계산 

자주 쓸 것 같은 것들만 추리면...

  • 구성 비율(Percent of Total): 전체 대비 각 항목 비중
  • 누계(Running Total): 처음부터 현재까지 누적합
  • 순위(Rank): 정렬 후 순위 부여
  • 이동 평균(Moving Average): 지정 기간 평균 (YTD, CAGR 등은 라인차트에서 시계열 볼 때 필요하면 그때 다시 찾아보기)

 

6. KPI 카드 만들 때 주의점 

  • 주문 수를 셀 땐 카운트(고유)(주문 번호) 사용 → 그냥 카운트하면 중복 집계될 수 o
  • 고객 수 셀 땐 고객명이 아니라 고객 번호로 카운트(고유) 해야 함 → 동명이인 있으면 고객명 기준으로는 한 명으로 잘못 집계됨
  • 필드를 (윈도우: 우클릭 / 맥: Option+클릭 난 둘다 써서...) 상태로 레이블에 올리면 집계 방식 바로 선택 가능

 

 


 

+...

 

 

우와... 심화 프로젝트도 우수팀으로 선정되었다

계속 좋은 분들이랑 팀이 된 덕분에......

팀 운이 참 좋았던 것 같다