목록알고리즘/백준 (56)
이숭간 공부기록
www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 문제유형 : 문자열, 정렬 문제풀이 : 1순위 정렬 - 문자열 길이기준 : sorted(key=lamda x: len(x)) - 람다함수로 정렬기준 제시 2순위정렬 - 문자열길이가 같을때는 알파벳순 : 디폴트 sort 내가푼 방법보다 더 쉬운방법 : lamda를 이용해서 정렬기준의 1순위, 2순위를 한번에 지정하기 배열에 튜플형태로 (문자열, 문자열길이) 로 저장한뒤 해당 배열을 다음과같은 람다식으로..
www.acmicpc.net/problem/5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 문제유형 : 문자열, 정렬, 해시 문제핵심 : 1. 파이썬 라이브러리 startswith메소드 2. 전화번호 배열을 정렬하면 접두어가 있는경우 같은번호로 시작하는 번호들은 무조건 인접하게 위치한다!! 3. zip()함수 : 파이썬 내장함수인 zip()은 동일한 개수로 이루어진 자료형을 묶어주는 역할을 하는 함수다. (동일한개수 아니여도 됨 _ 더작은 개수에 맞춰서 짝짓기됨, 즉 길이다른 ..
www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 이문제는 try-except문을 통해 예외처리해주는문제 테스트케이스의 개수를 알려주지 않기때문에 오류발생시 종료시키는 방법이필요하다. import sys input = sys.stdin.readline try: while True: a, b = map(int, input().split()) print(a+b) except: exit()
www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 문제유형 : 큐, 구현, 시뮬레이션 문제핵심 : 기본적이 큐 형태에서, 조건을 확인하고 조건에맞게 구현해주면됨 이전에 프로그래머스에서 풀었던 문젠데 그떄는 정리를 안했어서 다시 내가풀었던 방식을 안보고 새로풀어보았다. 그때랑 아이디어?는 비슷한데 조금 다른 방식으로 풀었군 풀이1 (젤 최근풀이) from collections import deque def solution(priority, location): que..
www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net dojinkimm.github.io/algorithm/2019/10/19/dp-2.html Study Blog 블로그 migration중 - https://devjin-blog.com/ dojinkimm.github.io 참고하시면 좋을것 같습니다! 문제유형 : DP 문제핵심 : 0부터 최대무게까지 돌면서 현재물건을 챙길때 vs 현재물건을 챙기지..
www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제유형 : 정렬 문제핵심 : 삽입정렬로 시간복잡도 O(n^2)을 가진다. 내코드: (삽입정렬) n = int(input()) array = list(int(input()) for _ in range(n)) for i in range(1, n): # 1,2,3,4 for j in range(i, 0, -1): # 1,2,3,4/2,3,4 if array[j] < array[j - 1]: array[j - 1], ar..