Coding Test

Coding Test

[Python] 프로그래머스 - 숫자 짝꿍

문제https://school.programmers.co.kr/learn/courses/30/lessons/131128 해설Counter 메소드를 사용하여 해결할 수 있었다. 문자열 비교만 수행하였을 때 시간 초과가 발생하여 시간복잡도를 고려하여야만 하는 문제였다. Counter 메소드를 사용하지 않고 직접 해당 map을 만들어 사용하는 연습을 해보아도 좋을 것 같다. from collections import Counterdef solution(X, Y): Y_map = Counter(Y) couple = [] for d in X: if 0

Coding Test

[Python] 백준 13419 - 탕수육

문제https://www.acmicpc.net/problem/13419 해설패턴을 찾는 문제이다. player 수가 많아지는 케이스도 쉽게 해결할 수 있을 것 같다. def solution(case): answer = 0 for v in case: player1 = [] player2 = [] for i, c in enumerate(v if (len(v) % 2) == 0 else v*2): if i % 2 == 0: player1.append(c) else: player2.append(c) print("".join(player1)) pri..

Coding Test

[Python] 프로그래머스 - H-Index

문제https://school.programmers.co.kr/learn/courses/30/lessons/42747?language=python3 해설코드는 간단했지만 경험이 부족하여 로직을 유도하는데 오래걸렸다. 정렬을 이용하여 citation과 논문 개수의 교차점을 잡는 것이 핵심이었다. def solution(citations): answer = 0 sorted_citation = sorted(citations, reverse=True) for i, c in enumerate(sorted_citation): if i+1

Coding Test

[Python] 백준 1755 - 숫자놀이

문제https://www.acmicpc.net/problem/1755 해설해시 맵을 이용해 해결할 수 있는 문제였다. def solution(start, end): digit_dict = { "0": "zero", "1": "one", "2": "two", "3": "three", "4": "four", "5": "five", "6": "six", "7": "seven", "8": "eight", "9": "nine", } custom_dictionary = {" ".join([digit_dict[d] for d in str(i)]): i for i in range(start, end+1)} for i, k in enumerate(sorted(custom_d..

Coding Test

[Python] 백준 11004 - 세준세비

문제https://www.acmicpc.net/problem/1524 해설정렬을 이용하는 문제였다. 그런데 입력 방식에 대한 불필요한 조건들이 있어 헷갈릴 수 있다. 알고리즘 테스트에서 알고리즘과 무관한 조건도 중요하게 여겨야 한다는 점 때문에 수준이 낮은 문제라 생각된다. def solution(case): for _ in range(case): input() # 입력 구분 n, m = map(int, input().split()) sj_soldiers = sorted(list(map(int, input().split()))) sb_soldiers = sorted(list(map(int, input().split()))) while s..

Coding Test

[Python] leetcode 2231 - Largest Number After Digit Swaps by Parity

문제https://leetcode.com/problems/largest-number-after-digit-swaps-by-parity/description/ 해설정렬을 활용하여 해결할 수 있는 문제였다. class Solution: def largestInteger(self, num: int) -> int: num_str = str(num) odd_digits = sorted([d for d in num_str if int(d) % 2 == 1], reverse=True) even_digits = sorted([d for d in num_str if int(d) % 2 == 0], reverse=True) result = [] for d..

AlienCoder
'Coding Test' 카테고리의 글 목록
loading