001
오늘의 코드카타
53. 2016년
문제 설명
2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요.
제한 조건
- 2016년은 윤년입니다.
- 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)
더보기
def solution(a, b):
days = ["FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"]
month_days = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
# a월 전까지의 총 일수 + (b - 1)일
total_days = sum(month_days[:a-1]) + (b - 1)
return days[total_days % 7]
+ 문제 풀고나면 다른 사람 풀이도 꼭 보는데...
더보기




ㅋㅋㅋㅋㅋㅋㅋㅋ
근데 난 개인적으로 좋은 코드 같음
길긴해도 의도가 한 눈에 보이고... 이보다 직관적일 수가 없다
002
오늘 학습한 내용
[ Tableau Prep 입문 ]
1. Tableau Prep이란
"전처리하면서 분석까지 같이 할 수 없을까"라는 생각에서 나온 도구가 Tableau Prep
1) 기능
- 결합: 조인 또는 유니온
- 정리: 불필요하거나 불일치하는 값 정제
- 변형: 피벗, 집계, 필터 등
- Tableau Desktop처럼 드래그 앤 드롭으로 데이터 연결→정제→통합까지 시각적으로 처리 가능
2. 유니온, 조인, 피벗 ⭐
| 유니온 (Union) | 같은 구조(필드 개수·명·타입 동일)의 테이블을 합침 | 아래로 붙음 |
| 조인 (Join) | 기준 필드로 두 테이블을 연결 | 옆으로 붙음 |
| 피벗 (Pivot) | 행에 있던 값을 열로, 열에 있던 값을 행으로 회전 | - |
- 조인 기본은 이너 조인(교집합), 레프트/라이트 조인 등도 o → 두 데이터가 완벽히 일치하면 어떤 조인 방식을 써도 결과는 같음
3. 실습 전체 흐름 정리
| ① 데이터 타입 확인/변경 | Timestamp를 밀리초까지 인식하도록 문자열 타입으로 변경 |
| ② 피벗 | Variable → '행을 열로', Value → '집계할 필드'로 지정해서 A1~A4 각각 피벗 |
| ③ 유니온 | 피벗1~4를 순서대로 하나의 유니온 스텝에 연결 |
| ④ 불일치 컬럼 정리 | A2의 한국어 필드명(생산력, 온도 등)을 나머지 영어 필드명과 매칭해서 합침 |
| ⑤ 조인 | 유니온 데이터와 담당자 정보를 [EQP]=[EQP Num] 조건으로 조인 |
| ⑥ 불필요한 필드 제거 | 중복된 EQP Num 필드 제거 |
| ⑦ 출력 | hyper 파일 형식으로 출력, 흐름 실행으로 추출 |
☆ Prep에서 전처리해도 원본 데이터에는 영향 없고, 출력 데이터에만 반영
① 데이터 타입 확인 및 변경
- A1~A4 연결 후 정리 단계 추가해서 데이터 분포 확인
- Timestamp가 날짜/시간 타입이었는데, 밀리초 단위까지 인식하려면 문자열 타입으로 변경 필요
② 피벗
- 각 공정 데이터마다 피벗 단계 추가 → '행을 열로' 선택
- Variable 필드 → '행을 열로 피벗할 필드'에, Value 필드 → '새 열에 대해 집계할 필드'에 드래그
- 결과: Variable 안의 Productivity, Result, Stability, Temperature가 각각 새 필드로 생성되고 Value 값이 해당 필드에 채워짐
- A1~A4 전부 동일하게 진행
- (참고: 값 분할 기능은 파이썬 split이랑 비슷함. 예를 들어 '.' 입력하면 그 기준으로 앞부분 값만 가져올 수 있음)
③ 유니온
- 피벗1~4를 순서대로 하나의 유니온 스텝에 연결 (유니온에 유니온을 또 묶는 게 아니라, 하나의 유니온에 차례로 추가하는 개념)
④ 불일치 컬럼 정리
- 유니온 후 "11개 결과 필드 중 8개 불일치" 발생
- 원인: A2의 Variable 값이 한국어(결과 지표, 생산력, 안정성, 온도)로 되어있어서 나머지 영어 필드명과 안 맞았음
- 불일치 필드에 마우스 오버 → + 버튼으로 같은 의미 필드끼리 바로 합치기 가능
- (파이썬이면 컬럼명 재지정해서 합쳐야 했을 텐데, Prep은 화면에서 바로 처리 가능해서 훨씬 편했음)
- 유니온으로 자동 생성된 Table Names 필드(csv 파일명이 값으로 들어감) → 필드명을 'Line'으로 바꾸고 값에서 .csv 텍스트 제거
⑤ 조인
- 유니온 데이터와 담당자 정보를 조인
- [EQP] = [EQP Num]
- 조인할 때 "적용된 조인 절 추가" 누르면 각 데이터에서 조인 기준 컬럼 선택 가능
⑥ 불필요한 필드 제거
- EQP와 EQP Num이 중복이라 EQP Num 제거 (필드 클릭 → 기타 옵션 → 제거)
⑦ 출력
- 출력 단계 추가해서 hyper 파일 형식으로 내보냄
- hyper는 Tableau 데이터 추출 전용 파일 → 나중에 Tableau 안에서 활용할 때 더 효율적
- 이름 지정하고 흐름 실행 누르면 지정 경로에 데이터 추출됨
⭐
전처리 흐름(Flow)을 만드는 이유
: 반복되는 전처리 루틴을 매번 처음부터 하는 건 비효율적 → 새 데이터 들어오면 예전 흐름을 그대로 복사해서 재사용하면 ok

'Today I Learned' 카테고리의 다른 글
| [내일배움캠프 QA/QC 6기] TIL #051 (0) | 2026.07.24 |
|---|---|
| [내일배움캠프 QA/QC 6기] TIL #050 스트림릿 입문 (0) | 2026.07.23 |
| [내일배움캠프 QA/QC 6기] TIL #047 (0) | 2026.07.20 |
| [내일배움캠프 QA/QC 6기] TIL #046 (0) | 2026.07.16 |
| [내일배움캠프 QA/QC 6기] TIL #045 (0) | 2026.07.15 |