본문 바로가기
반응형

Algorithms119

[알고리즘] 오픈 채팅방 포인트 생각하는 방향으로 코드를 짤 수 있어서 상당히 간편하다. 점점 문제를 읽는 것이 힘들어진다. 독해 능력을 키워야겠다. 닉네임을 최신으로 유지하는 방법으로 해결하였습니다. 어차피 기록은 바뀐 닉네임으로 변경 될테니 닉네임만 최신으로 유지한다면 해결할 수 있는 문제입니다. 🧶문서는 항상 수정될 수 있습니다. 비판은 환영합니다. python def solution(records: list) -> list: answer = [] # 정답 display = [] # 채팅방 기록 데이터 nickname = {} # uid 마다 닉네임을 저장하는 딕셔너리 for record in records: line = record.split() if len(line) == 3: command, uid, nick = li.. 2021. 5. 2.
[알고리즘] 멀리 뛰기 포인트 다이나믹 프로그래밍을 위한 문제임을 인지했습니다. 약간 너무 티가 난다고나 할까;;;; 1, 2 는 기본 케이스이면 이를 확장하면, 3을 만들기 위해서는 1, 2 가 필요합니다. 4를 만들기 위해서는 2, 3 이 필요합니다. 하지만 우리는 이미 2, 3 을 가지고 있습니다. 5를 만들기 위해서는 3, 4 가 필요합니다. 하지만 우리는 3과 4를 이미 구해왔습니다. 따라서 값을 바로 계산할 수 있습니다. 🧶문서는 항상 수정될 수 있습니다. 비판은 환영합니다. python def solution(n: int) -> int: d = [-1] * 2001 d[1] = 1 d[2] = 2 for i in range(3, n + 1): d[i] = d[i - 1] % 1234567 + d[i - 2] % 1.. 2021. 5. 2.
[알고리즘] 야근 지수 포인트 n 만큼 일을 처리할 수 있고 남은 일의 양으로 야근 지수가 나타난다. 이 야근 지수를 최소로 만들 수 있는 방법? 최소로 만들려면 각각의 원소 차이가 근소하도록 만들어주어야 한다. 데이터의 순서는 중요하지 않기 때문에 내림차순 정렬로 한다. 🧶문서는 항상 수정될 수 있습니다. 비판은 환영합니다. python def solution(n: int, works: list): pointer = 0 works.sort(reverse=True) while n > 0: n -= 1 if works[pointer] > 0: works[pointer] -= 1 if pointer + 1 < len(works) and works[pointer] < works[pointer + 1]: # 다음이 크다면 하나를 줄이.. 2021. 5. 2.
[알고리즘] 음양 더하기 포인트 절댓값 리스트와 sign 등의 시그널을 통해서 더하거나 빼면서 값을 찾아주는 문제입니다. 🧶문서는 항상 수정될 수 있습니다. 비판은 환영합니다. python def solution(absolutes: list, signs: list) -> int: answer = 0 for one, two in zip(absolutes, signs): if two: answer += one else: answer -= one return answer print(solution([4, 7, 12], [True, False, True])) print(solution([1, 2, 3], [False, False, True])) 2021. 4. 29.
반응형