결측치: 측정되지 않은 수치, 무언가의 이유로 인해 측정/기록되지 않은 수치를 말한다. 본 포스팅에서는 인공지능 학습 데이터셋의 결측치를 다루고자 한다. 일반적으로 결측치는 np.nan 으로 표기된다. np.nan이 열마다 얼마나 확인하기 위해서 df.info()를 사용하며, 결과 예시는 다음과 같다. 상단의 표를 보면, 18번째 열인 "TotalCharges"에 11개의 null 값이 있다는 것을 확인할 수 있다. 그런데, 이게 결측치의 전부일까? 😈 1. number 결측치 찾아내기 첫 번째로, df.describe()을 실행한다. 이 함수는 숫자 계열의 데이터들의 평균, 편차, 중위값 등을 알려주는데 EDA(Exploraatory Data Analysis)적인 관점이 필요하다. tenure는 통신사..
파이썬
🔗 문제 링크 13549번: 숨바꼭질 3 💊 문제 요약 수빈이는 숨바꼭질 중이다. 자신은 N, 동생은 K에 위치하고 있는 것을 알게 되었다. 수빈이의 위치가 X일 때 걷는다면 1초 뒤에, X+1, X-1로 이동한다. 또는, 순간이동하여 0초 후에 2*X로 이동할 수 있다. 수빈이가 동생에게 가장 빠르게 가는 시간을 구하시오. 🌿 풀이 설명 그리디 문제로 해결하려 했지만, 틀렸습니다 로 인해 문제 유형을 확인하였다. 그래프 이론, 특히 너비 우선 탐색을 사용하여 풀어야 한다는 것을 확인하였다. 응 근데 그래프.? 🫤 내가 알던 그래프는 이런 건데... 지금 문제의 상태는 [{현재 위치}, {시간}] 이면 간선의 가중치를 어떻게 정의해야 하지? 숨바꼭질 3은 간선의 가중치가 변할 수 있는 그래프로 문제를 해..
🔗 문제 링크 1987번: 알파벳 💊 문제 요약 세로 R칸, 가로 C칸인 표 모양의 보드판이 있다. 각 칸에는 알파벳 대문자가 적혀있고, 1행 1열에 말이 놓여있다. 말은 상하좌우 1칸씩 이동이 가능하며, 지금까지 지나오지 않은 알파벳이 적힌 칸으로만 이동할 수 있다. 좌측 상단으로부터 말이 최대 몇 칸 움직일 수 있는지 구하시오. 단, 좌측 상단의 카드도 포함된다. 🌿 풀이 설명 나의 멘탈을 다소 흔들었던 알파벳 문제... 🥹 문제 해결을 위한 의식의 흐름은 이러했다. BFS가 익숙했어서 deque를 사용하여 문제를 해결해보려 한다. → deque에 append하는 형식은 (current_x, current_y, distance, passed_alphbets (set))로 하고, visited도 넣고...
🔗 문제 링크 29714번: 브실이의 구슬 아이스크림 💊 문제 요약 브실이는 요상하게 구슬 아이스크림을 먹는다. 첫 줄에 초기 아이스크림 구슬의 갯수 N이 주어지고, 둘째 줄에 N개의 구슬 숫자들이 공백으로 분리되어 주어진다. 셋째 줄에 입력되는 Q번의 구슬 아이스크림을 먹고 보충하거나, 아무것도 하지 않는 과정을 거쳐 구슬 아이스크림을 먹는다. (정말 요상하다.) Q번 두 개의 줄이 세트로 입력된다. 첫 번째 줄은, 먹으려는 아이스크림 구슬의 갯수와 그 갯수만큼 구슬의 숫자가 주어진다. 두 번째 줄은, 보충하려는 아이스크림 구슬의 갯수와 그 갯수만큼 구슬의 숫자가 주어진다. 만약, 먹으려는 아이스크림 구슬 중, 가지고 있는 아이스크림에 없는 것이 있다면 먹거나 보충하지 않고 넘어간다. 구슬 아이스크림을..
🔗 문제 링크 2734번: 드럼통 쌓기 💊 문제 요약 드럼통을 눕혀서 직사각형 쓰레기통에 쌓으려고 한다. 테스트 케이스의 갯수 T가 주어지며, 각 케이스에서 초기에 놓으려는 드럼통의 갯수 N과 각 드럼통의 x 좌표 N개가 한 줄에 주어진다. 가장 아랫줄을 제외한 모든 줄은 바로 아랫줄의 드럼통 2개와 접하며, 바로 아래 줄보다 하나 적은 드럼통들이 있다. 가장 위에 쌓는 드럼통의 x와 y 좌표를 소수점 넷째자리까지 출력하라. 단, 드럼통 윗면의 반지름은 1이다. 🌿 풀이 설명 정답 코드 더보기 import sys input=sys.stdin.readline T=int(input().rstrip()) for _ in range(T): N, *drums=map(float, input().rstrip().sp..
🔗 문제 링크 1876번: 튕기는 볼링공 💊 문제 요약 지름이 20cm인 볼링공을 폭이 105cm인 볼링 레인에, 레인과 평행한 축을 기준으로 반시계 방향 X도로 레인의 중심에서 던졌다. (10
문제 링크 1916번: 최소비용 구하기 문제 요약 N개의 도시가 있고, 한 도시에서 출발하여 다른 도시에 도착하는 M개의 버스가 있다. 각 M개의 버스에 대해 '출발 도시, 도착 도시, 비용'이 주어진다. A 도시에서 B 도시로 가는 최소 비용을 구하자. 도시는 1부터 N까지의 자연수로 나타난다. 풀이 설명 출발 지점부터 도착 지점까지의 최소 비용을 구하는 것, 다익스트라(dijkstra) 알고리즘으로 예시 입출력 문제를 풀어보니, 다른 입력들에서도 답을 구할 수 있으리라 생각되었다. visited를 활용한 다익스트라 구현 어제+그제 문제들을 풀면서 visited 배열을 사용하는 것이 비효율적인 중복 탐색을 방지하여 소요 시간 개선에 탁월하다는 것을 느껴서 오늘 다익스트라 문제도 동일하게 visited ..
문제 링크 15900번: 나무 탈출 문제 요약 node가 N개, vertex가 N-1개인 tree가 주어진다. 각 leaf에는 말이 있고, 한 턴에 한 번씩 움직여서 root에 도달하면 말을 제거하는데 이런 방식으로 움직일 말이 없어지는 사람이 패배하는 게임을 하고 있다. 주어지는 tree에서 게임을 할 때, 선공을 하는 형석이가 이긴다면 "Yes" 진다면 "No"를 출력하라. 풀이 설명 tree란 순환이 없는 그래프이다. 그중 특히 이진 트리는 leaf node를 제외한 나머지가 두 개씩 자식 노드를 가진 트리를 말하며, 위 문제에서는 그러한 조건이 달려있지 않았기 때문에 일반적인 트리로 가정한다. 문제를 풀 때, 일반적으로 문제에서 제시된 것들을 코드로 구현하고 거기에서 목표로 하는 값을 구하고자 하..