2026/05/19
20260519
TIL 겸 공부 일기
한 줄 평가: 라이브세션이 많다! 거기다 참여하고 다운받고, 계산하고, 연결하는 것이 많아서 이제 점점 실무에 가까워 진다는 느낌이다. 잘 마무리 짓도록 하자!
다음 날 목표: 내일은 과제다! 이를 위해 복습에 집중하도록 하자!
코드타카 74 번 - 신고 결과 받기
추론 1: 진짜 레벨 4 버겁구나.. 지금의 내 실력의 한계를 보인다는 느낌?
추론 2: 저번 문제 풀이 방식을 응용하면 되려나? 딕셔너리 지정하고, 각 변수별 점수 더하기?
추론 3: 그 후
추론 4:
샘플:
id_list = ["muzi", "frodo", "apeach", "neo"]
report = ["muzi frodo","apeach frodo","frodo neo","muzi neo","apeach muzi"]
k = 2
print(solution(id_list, report, k))
1차 시도:
def solution(id_list, report, k):
AAA = dict.fromkeys(id_list, 0)
BBB = []
CCC = dict.fromkeys(id_list, 0)
for i in range(len(report)):
for j in id_list:
if j in report[i]:
AAA[j] += 1
if AAA[j] >= k:
BBB.append(i)
for g in id_list:
if g in BBB:
CCC[g] += 1
return CCC
-> 으으.. 결국 나누어야 하나?
def solution(id_list, report, k):
report = list(set(report))
AAA = dict.fromkeys(id_list, 0)
BBB = []
CCC = dict.fromkeys(id_list, 0)
for r in report:
a, b = r.split() # a: 신고자, b: 피신고자
AAA[b] += 1
for j in id_list:
if AAA[j] >= k:
BBB.append(j)
for r in report:
a, b = r.split()
if b in BBB:
CCC[a] += 1
return list(CCC.values())
-> 의외로 쉽게 풀리긴 했네...
타인 풀이:
def solution(id_list, report, k):
answer = [0] * len(id_list)
reports = {x : 0 for x in id_list}
for r in set(report):
reports[r.split()[1]] += 1
for r in set(report):
if reports[r.split()[1]] >= k:
answer[id_list.index(r.split()[0])] += 1
return answer
-> 비슷한데? 나 혹시 슬슬 일반화 되어가는 건가..?
타인 풀이2:
ef solution(id_list, report, k):
answer = [0] * len(id_list)
dic_report = {id: [] for id in id_list} # 해당 유저를 신고한 ID
for i in set(report):
i = i.split()
dic_report[i[1]].append(i[0])
for key, value in dic_report.items():
if len(value) >= k:
for j in value:
answer[id_list.index(j)] += 1
return answer
-> 이것도 결국 같은 맥락이네...
===
아티클 스터디
더 나은 대시보드 디자인을 위한 10개명
대시보드 디자인은 요즘 많이 요구되는 과제임. 기업들은 모든 정보, 트렌드 시각화, 위험 요소 발굴, 실시간 피드백을 주는, 기업의 밝은 미래로 인도해줄 간단한 뷰를 선호함.
- 대시보드의 목적 정의
Operational dashboard - 분초를 다루는 임무를 하고 있는 사용자들에게 빠르게 중요한 정보를 전달하는 것.
Analytical Dashboard - 분석과 의사결정을 지을 수 있는 정보를 한눈에 보게 하고, 대신 시간에 예민하지 않으며 즉각적인 조치에 초점을 맞추지 않는 방법. 최우선 목표는 사용자들이 데이터를 더 쉽게 이해하고, 트렌드를 분석하며 의사결정을 짓게 하는 것.
- 정확한 데이터 시각화 선택
데이터의 관계를 쉽게 볼 수 있는 그래프 - 분산형, 버블, 네트워크 도표 등.
데이터값을 비교할 수 있는 그래프 - 막대, 라인 차트 등
전체를 구성요소를 비교할 수 있는 그래프 - 파이, 도넛 차트 같이 너무 많은 요소가 있거나 비슷한 수치가 있을 때 특히 비교하기 어려움.
분포를 비교할 수 있는 그래프 - 분포 차트
사용하지 말아야 할 그래프 - 게이지, 3D 차트 등
-
명확하고 일정한 네이밍과 날짜포멧, 그리고 큰값들의 축소화
대시보드의 목적이 한눈에 보는 메시지이기에 작은 요소 하나하나 일관성 있게 작성 -
레이아웃과 흐름을 우선시로 정의.
그리드 - 적은 노력으로 효과적인 조정과 일관성을 유지하고, 간단한 구조를 만들고 디자인의 뼈대를 손쉽게 만듬.
시선 처리에 맞게 작성
-
일관성있는 형태의 구성요소를 사용
반응형, 유동형, 확작성 등의 장점이 있음 -
여백은 두배로
-> 가독성이 떨어질 수 있음 -
정보를 숨기지 말고 너무 인터랙션에 의지 X
핵심 정보만 보이게 작성 -
주문제작보다 개인화
확신을 가지고 그들에게 중요한 것을 확신 있게 보이기 -
테이블이나 리스트를 적용시, 인터랙티브한지 확인하고 정확히 나열되어있는지 확인 아니면 표로
데이터 테이블은 큰 수치의 아이템들의 정보를 보여줄 때, 공간 효율성, 쉬운 확장성과 개발, 그리고 사용자 편리성 등에서 매우 유용함. -
대시보드는 마지막에 디자인
대시보드는 모든 것을 요약한 뷰이고, 다양한 앱의 핵심 정보를 보여주기 때문에 마지막에 디자인하는 것이 불필한 이중 작업을 방지할 수 있음.
인사이트: 아티클에 따르면, 대시보드 디자인은 요즘 범기업적으로 많이 요구되는 과제입니다. 기업들은 모든 정보들을 정리해서, 트렌드 시각화, 위험 요소 발굴, 실시간 피드백을 줄 수 있는 간단한 뷰를 선호한다고 나타나 있습니다.
다음 아티클은 더 나은 대시보드 디자인을 위해 10개의 규칙을 설명합니다. 이를 통해 사전에 대시보드의 목적을 올바르게 정의하고 구성을 시작하여, 이를 구성할 수 있는 데이터에 따른 올바른 시각화용 그래프를 추천합니다. 그 외에도 정확한 네이밍, 날짜나 숫자 등의 포맷, 레이아웃이나 여백 등의 다양한 최적화된 시각적 조언과, 어떤 정보들을 남겨야 하는지, 테이블을 어떻게 사용해야 하는 지등 다양한 대시보드를 구성하기 전 계획하고 구성하는 것 부터, 대시 보드 제작, 디자인 까지 다양한 인사이트를 제공합니다.
아티클 추천 이유: 지금 까지 배운 분석들을 정리하고 한눈에 정리해 나타낼 수 있는 대시보드를 학습하는 주간이기도 하고, 앞으로 과제나 프로젝트에 들어가면서 대시보드를 구성하는 데 앞으로 많은 고민이 있을 것 으로 판단되기에, 이 아티클을 통해 조금이나마 아이디어와 영감을 얻고, 방향성을 성립하는 것에 보템이 될 수 있을 것으로 생각 되어 이 아티클을 추천합니다. 앞으로도 대시 보드 구성이나 포트 폴리오 작성 전에 잠깐 살펴 보며 사전에 구성하고 설계하는게 도움이 될 것 입니다.