알고리즘90 백준 알고리즘: 11650번 좌표 정렬하기 (Python) 문제 정보 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 핵심 x좌표가 정렬의 기준이 되고, y좌표를 나중에 정렬하면 된다 하지만 이를 쉽게 풀어갈 수 없었던 것은 각각 다른 배열로 분리해서도 안되었고 그 자체에서 어떻게 정렬할 수 있을까에 대한 생각을 많이 하게 되었다 또한, 이를 제출하면서 많은 런타임 에러들을 마주하였는데 이는 sys.stdin 의 입력 라이브러리를 사용하면서 발생하였었는데 해결 방법을 찾았다 풀이 import sys def sol(.. 알고리즘/Python 2023. 6. 1. 백준 알고리즘: 1181번 단어 정렬 (Python) 문제 정보 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 핵심 1. 해당 단어들은 중복을 허용하지 않음 2. 길이가 짧은것부터 정렬하고, 길이가 같다면 사전순으로 정렬해야 함 풀이 나의 첫번째 풀이 import sys def sol(): n = int(input()) words = [set() for _ in range(50)] for _ in range(n): l = input() words[len(l)-1].add(l) for w in words: if w: for w in sorted(lis.. 알고리즘/Python 2023. 5. 30. 백준 알고리즘: 1026번 보물 (Python) 문제 정보 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 핵심 이 문제를 보자마자 생각한 해결방법은 A 배열과 B 배열을 각각 정렬하고, 최소 결과가 나와야되므로 두 배열 중 하나의 배열은 역으로 정렬하여 같은 인덱스의 요소끼리 곱해서 답을 출력하면 될것이라고 생각했다 실제 풀이해보니 해당 방식이 맞았고 그렇게 오래 걸리지도 않고 코드도 간결하게 풀이할 수 있었다 풀이 import sys def sol(): _ = sys.stdin.readline() A = list(map(int, sys.stdin.. 알고리즘/Python 2023. 5. 30. 백준 알고리즘: 1406번 에디터 (Python) 문제 정보 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 핵심 일단 문자열을 리스트 형식으로 바꾸어서 커서의 위치를 인덱스로 지정하고, 해당 위치에서 insert, remove 작업을 통하여 문제를 해결하려고 하는 사람들이 많을것 같다고 생각했다(물론 나도 했다가 시간 초과) 어쩌면 당연했던게 문자열의 길이가 짧은것도 아니고, 많은 수정을 필요로 했기 때문에 삽입, 삭제의 O(n)번의 반복은 이 문제를 해결하는 올바른 방법은 아니었던 것 같다 리스트의 경우 인덱스를 알고있는 상태에서 해당 원소에 접근하는 것은.. 알고리즘/Python 2023. 5. 30. 백준 알고리즘: 10866번 덱 (Python) 문제 정보 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 핵심 덱(Deque)의 구조와 각 명령들에 대해 알면 쉽게 풀이할 수 있는 것 같다 덱(Deque)은 "Double Ended Queue"의 약자로, 양쪽 끝에서 삽입과 삭제가 모두 가능한 선형 자료구조이다. 덱은 큐(Queue)와 스택(Stack)의 기능을 모두 갖고 있어, 큐와 스택의 동작을 유연하게 수행할 수 있다. 덱의 구조는 일렬로 나열된 항목들로 이루어진 컬렉션입니다. 각 항목은 노드(node)라고도 부르며, 이 노드들은 양방.. 알고리즘/Python 2023. 5. 25. 이전 1 ··· 12 13 14 15 16 17 18 다음