https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,0 www.acmicpc.net 문제 풀이 문제가 어렵지 않아 금방 구현을 해냈고, 아래는 내가 처음 작성한 코드이다. import sys input = sys.stdin.readline n = int(input()) cards = list(map(int,input().split())) m = int(input()) checks = list(map(int,input().split())) for..
https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 문제 풀이 문제가 길어서 처음에 뭐지 싶었는데 포켓몬 얘기는 중요한 부분이 아니기 때문에 예제 입출력 조건만 잘 읽어보면 이해할 수 있는 문제였다. n개의 포켓몬 이름이 있을 때 이에 대한 m개의 질문과 일치하는 값을 출력하면 되는 문제였고, 바로 코드 작성을 시작했다. 금방 풀 수 있을 줄 알았는데 계속 시간초과가 나서 답답했다. 시간 초과가 난 코드는 다음과 같다...
https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 문제 풀이 이번 문제는 서로 비교하여 카드가 존재하는지만 확인하면 되는 문제이기 때문에 금방 구현 과정으로 옮겼다. 다만 어떤 알고리즘을 활용하여 탐색을 할까 하다가 일단은 이중반복문을 사용하여 탐색을 하였다. import sys input = sys.stdin.readline n = int(input()) myCard = list(map(int,input().spl..
https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net 문제 풀이 이번 문제는 설명을 이해하는데 좀 애먹었다. 좌표를 압축한다고는 하는데 입출력 예제를 봐도 이해가 안 돼서 해당 문제를 설명해 둔 글들을 보며 이해를 했다. 여기서 좌표를 압축한다는 내용 때문에 문제를 한번에 이해하기 어려워졌다고 생각하는데 이를 정리하면 다음과 같다. 좌표의 압축 = 해당 값보다 작은 값들의 개수로 대체 이 점만 알게..
https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 문제 풀이 이번 문제는 등차수열의 합을 이용해서 풀면 되겠다는 생각이 들었다. 하지만 1부터 20까지 모두 더했을 때 나오는 수는 210이므로 예제 입력 값과 약간 차이가 있었다. 심지어 1부터 20까지는 총 20개인데 예제 출력은 19개가 나왔기 때문에 처음에 더 당황했다. 하지만 문제를 잘 읽어보면 서로 다른 N개의 합이라고만 명시되어 있지 꼭 수가 일정하게 증가해야 한다는 조건은 없다. 그래서 이번에는 반대로 200에서 1씩 증가시키면서 빼보기로 했다. 200 - 1 = 199 199 - 2 = 197 198..