백준 35

백준 10814 문제풀이

📌문제 설명 📌문제접근방식 enumerate함수를 이용해 회원별 번호를 매긴 뒤 나이순으로 정렬하면 된다고 생각했다. 만약 나이가 같다면 매겨둔 회원 번호로 정렬을 실시한다. 따라서 정렬의 기준를 2개로 설정했다. 📌문제풀이 1차 시도 실패한 이유는 다른 곳에서 발생했다. 입력받을 때 나이가 문자로 입력되었다. [(['21', 'Junkyu'], 1), (['21', 'Dohyun'], 2), (['20', 'Sunyoung'], 3)] 따라서 '21'과 '20'을 숫자로 바꿔주니 문제 없이 통과했다. 비교할 때는 반드시 비교하는 대상의 타입이 무엇인지 확인해야겠다. 소스코드 import sys n = int(sys.stdin.readline().rstrip()) input_list = [sys.stdi..

알고리즘 2021.03.20

백준 2164(카드분류2) 문제풀이

📌문제 설명 📌문제 접근 방식 첫 번째 시도 아무생각 없이 시도했다가 시간 초과가 떴다. 문제를 접근한 방식은 다음과 같았다. 1. 첫 번째 카드를 제거한다. 2. 두 번째 카드를 맨 뒤로 보낸다. 위 두 과정을 1장이 남을때까지 수행하면 되는 문제라고 생각했다. 따라서 리스트를 사용했고 맨 앞에 카드를 삭제하고 뒤로 보내도록 구현했다. 문제가 없을거라 생각했던 이유 두 가지이다. 1. 1중 for문을 사용했다. 2. 최대 가드 수가 50만장이다. 소스코드 # 2초 초과 - N 500000으로 대입 시 79초가 걸렸다. # 병목 지점은 어디지? import sys n = int(sys.stdin.readline().rstrip()) cards = [x for x in range(1,n+1)] def so..

알고리즘 2021.03.12

백준 1259번 : 팰린드롬이란?

📌문제 설명 팰린드롬이란? 팰린드롬이란 앞에서 읽으나 뒤에서 읽으나 똑같은 단어를 말합니다. 📌문제 접근 방식 이 문제는 입력받은 값을 문자열로 바꾼 뒤 뒤집어주기만 하면 되는 간단한 문제였습니다. 📌문제 해결 및 소스코드 import sys def solution(): while True: input_value = str(sys.stdin.readline().rstrip()) if input_value == '0': break target_value = input_value[::-1] if input_value == target_value: print("yes") else: print("no") return 0 solution()

알고리즘 2021.03.09

백준 1920번[수찾기] 문제풀이

문제 설명 📌문제 접근 방법 처음에 간단히 생각했던 방법은 '빈 리스트에 B가 A에 있으면 1, 없으면 0을 저장하자'였습니다. 1. 빈 리스트 생성 2. B가 A에 있다면 1, 없으면 0 리턴 📌1차 오답 소스코드 import sys M = int(sys.stdin.readline().rstrip()) A = list(map(int, sys.stdin.readline().rstrip().split())) N = int(sys.stdin.readline().rstrip()) B = list(map(int, sys.stdin.readline().rstrip().split())) def solution(A, B): res = [] for x in B: if x in A: res.append(1) else: ..

알고리즘 2021.03.07

백준 1181번[단어 정렬] 문제풀이

📌문제 설명 📌문제 접근 방식 1. 중복된 단어를 제거한다. 2. 글자 수로 정렬 후 알파벳 사전순으로 정렬한다. 📌몰랐던 점 sorting 기준을 lambda식으로 정의할 때 2가지 기준을 설정할 것 중복된 단어를 제거하는 건 set 자료구조를 사용해 간단히 해결할 수 있었다. 2단계에서 글자 수로 정렬하는 것도 문제없이 수행했으나 알파벳 사전순으로 정렬하는 과정에서 헷갈렸던 부분은 문자열 정렬을 어떻게 할 것인가였다. lambda 식을 이용해 정렬할 때 2개의 기준을 주고 싶었는데 문법이 기억나지 않았다. 그래서 직접 문자열 정렬을 하는 함수로 구현하다보니 시간이 오래걸렸다. sort함수의 key파라미터로 lambda 식을 넘겨줄 때 글자수와 문자열을 설정하면 간단한 문제였다. 📌소스코드 import..

알고리즘 2021.03.06