전체 글

Coding Test/문제 풀이

[문제 풀이] 백준 10825

10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net 해결 과정 정렬의 다중조건 처리 방법. 나의 풀이 N = int(input()) students = [] for _ in range(N): name, a, b, c = input().split() students.append((name, int(a), int(b), int(c))) students.sort(key=lambda x: (-x[1], x[2], -x[3], x[0])) for s in students: print(s[0])

Coding Test/문제 풀이

[문제 풀이] 백준 1446

1446번: 지름길 첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하인 양의 정수이고, D는 10,000보다 작거나 같은 자연수이다. 다음 N개의 줄에 지름길의 시작 위치, 도착 위치, 지름길의 길이 www.acmicpc.net 해결 과정 다익스트라 알고리즘을 활용한 것이 뭐가 있을까 하다가 발견한 문제. 이것 역시 다른 코드를 참고하며 이해했다. 나의 풀이 import sys N, D = map(int, sys.stdin.readline().split()) graph = [] for i in range(N): start, end, shortcut = map(int, input().split()) if end

Coding Test/문제 풀이

[문제 풀이] 백준 18352

해결 과정 BFS를 어떻게 활용해야 할지 감이 안왔다. 최단경로를 찾는 문제. dis = [-1, -1, -1, ... -1] (총 노드의 개수만큼) 를 가지고 있고, BFS를 활용하며 dis가 여전히 -1인 상태일때만 update 해준다. 다익스트라 알고리즘을 사용한 사람들도 많았는데(우선순위 큐 사용), 살펴보자. 참고로 내가 제출한 코드는 pypy로 제출해야만 시간초과가 안났다. 나의 풀이 from collections import deque N, M, K, X = map(int, input().split()) graph = [[] for _ in range(N+1)] for _ in range(M): a, b = map(int, input().split()) graph[a].append(b) # ..

Coding Test/문제 풀이

[문제 풀이] 무지의 먹방 라이브

해결 과정 와 일단 ㅋ ㅋ ㅋ 4번 이상을 다시 짰다. 정확성 + 효율성 문제라 정확성만 맞으면 통과가 안된다. 1. 효율성 있길래 첫 풀이는 나름 고심해서 짰는데 정확성 자체가 통과를 다 못했고, 2. 다음 풀이는 정확성은 모두 맞으나, 효울성이 다 안나왔다. 그래서 생각해낸 IDEA. 최소인 숫자를 모두 건너 뛰면 되겠다 -> 카카오 해설을 보니 이게 맞다. 3. 그래서 이 방식대로 2를 변경했는데 역시나 효율성이 다 안나온다. 4. 이코테 + 카카오 해설 방식으로 다시 짰는데 와 여기서 스스로 짜려니까 빼먹은 부분이 많았다. 어떤 부분이냐면, 효율성을 위해 시간을 빼주지 않고 따로 변수로 관리하도록 하는데, 이를 계산하는 부분이 난감했다. ㅋ 나의 풀이 import heapq def solution..

Coding Test/문제 풀이

[문제 풀이] 백준 1439

해결 과정 연속된 하나 이상의 숫자를 모두 뒤집는데, 모두 같은 숫자로 만들 수 있는 최소 횟수 구하기 -> 연속된 하나 이상의 숫자 -> 한 숫자로 만들기 -> 0과 1 중 몇 번 뒤집는게 최소인지 구하기 나의 풀이 def solution(): S = input() tmp = S[0] tmpList = [S[0]] for i in S: if tmp == i: continue else: tmp = i tmpList.append(i) if len(tmpList) == 1: return 0 else: return min(tmpList.count("1"), tmpList.count("0")) print(solution())

EUNJI HA
Day by Day