[백준] 1181번 단어 정렬 - 파이썬
·
백준/구현
https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 풀이 정렬을 두 번 해주었습니다. 사전순으로 오름차순으로 정렬을 해준 뒤에 길이를 기준으로 정렬을 추가로 진행해주었습니다. 1. 오름차순으로 정렬(문제의 테스트 케이스 기준) but cannot hesitate i im it more no wait wont yours 2. 오름차순에 이어서 길이 기준으로 정렬 i im it no but more wait wont yours cannot ..
[Python] 중복되는 데이터를 제거하고 싶을 경우
·
Dev Lang/Python
저는 백준 문제를 풀면서 중복되는 입력값이 주어졌을 때 중복된 값을 지우기 위해 다음과 같은 방법을 사용합니다. 1. for문과 if문을 이용한 중복된 값을 확인하여 저장해주는 방법. 2. 집합 set()을 이용하여 중복된 값을 제거해주는 방법. ++ for문은 컨프리헨션으로 간편하게 나타내주셔서 상관없습니다. for문과 if문을 이용하여 중복된 값을 확인하여 저장해주는 방법. # 만일 입력값이 1, 1, 2, 2, 4, 5 가 주어진다면(개행을 포함해서) # n은 입력값의 개수를 뜻합니다. n = int(input()) li = [] for _ in range(n): arg = input() if arg not in li: li.append(arg) print(' '.join(li)) >>> 1 2 4..
[백준] 10814번 나이순 정렬 - 파이썬
·
백준/구현
https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 풀이 참고자료: https://sunghyun98.tistory.com/60?category=956773 sort()메서드의 파라미터 값을 알 수 있는 문제입니다.(sorted()도 사용가능) sort() 메서드의 파라미터는 key와 reverse가 존재합니다. reverse는 숫자를 내림차순으로 정렬해주는 기능을 합니다. li=[1, 2, 3, 4, 5] li.sort(reverse=True) pri..
[백준] 2751번 수 정렬하기 2 - 파이썬
·
백준/구현
https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 풀이 리스트의 메서드 중 하나인 sort()를 이용해서 문제를 풀어주었습니다. 시간을 축소시키기 위해 sys.stdin.readline() 와 sys.stdout.write()를 사용해주었습니다. # 2751번 수 정렬하기 2 import sys input = sys.stdin.readline n = int(input()) s= [int(input()) for _ in range(n)]..
[백준] 17219번 비밀번호 찾기 - 파이썬
·
백준/구현
https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 풀이 딕셔너리를 사용해서 문제를 풀어주었습니다. 입력값이 많아서 sys.stdin.readline()도 사용해주었습니다. # 17219번 비밀번호 찾기 import sys n, m = map(int, input().split()) reposi = {} for _ in range(n): site, password = sys.stdin.readline().rstrip()..
[백준] 11723번 집합 - 파이썬
·
백준/구현
https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 풀이 집합에 대한 메서드를 정리해 볼 수 있는 문제입니다. 심화느낌으로 discard() 와 remove()의 차이에 대해서 알 수 있습니다. remove()는 집합안에 삭제할 요소가 존재하지않으면 keyerror가 일어나지만 discard()는 삭제할 요소의 존재유무와 상관없이 에러가 일어나지않습니다. # 11723번 집합 import sys n = int(input()) a = set() for _ in range(n): ord..
[백준] 11279번 최대 힙 - 파이썬
·
백준/자료구조
https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 풀이 저번에 풀었던 문제와 다른 최대 힙입니다. heapq는 최소 힙이기에 부호를 역전시켜서 힙에 넣어준뒤에 꺼내 줄때는 다시 부호를 재역전시켜줍시다. # 11279번 최대 힙 import sys, heapq heap=[] n = int(input()) for _ in range(n): k = int(sys.stdin.readline()) if k == 0: if heap: print((-1)*heapq.heappop(heap)) else: print(0) else: heapq.heappush(heap, -1*..
[백준] 1927번 최소 힙 - 파이썬
·
백준/구현
https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 풀이 파이썬 heapq를 import해서 사용할 수 있는지에 대해 물어보는 문제입니다. 직접 구현해줘도 되지만 라이브러리를 사용하면 편리합니다. # 1927번 최소 힙 import sys, heapq heap = [] n = int(sys.stdin.readline()) for _ in range(n): k = int(sys.stdin.readline()) if k == 0: ..
개발자 성현
개발새발 블로그