1. 문제 25632번: 소수 부르기 게임 (acmicpc.net) 25632번: 소수 부르기 게임 용태가 부를 수 있는 소수는 11,13,1711,13,17이고, 유진이가 부를 수 있는 소수는 13,17,1913,17,19이다. 둘 다 최선을 다해서 플레이한다면 13→17→11→1913→17→11→19로 진행될 수 있다. 용태가 더 이상 부를 소수가 www.acmicpc.net 2. 풀이1 두 플레이어가 주어진 범위 a,b와 c,d에서 각각 소수를 찾는다 만약 승리를 위해 최선을 다해서 플레이한다면, 어떻게 해야 할까 핵심 규칙은 이미 부른 소수는 부르지 못한다는 것이다 그러므로 상대가 가지고 있는 소수를 내가 먼저 부른다면, 상대가 가지고 있는 소수를 부르지 못하게 하면서 동시에 나는 턴을 넘기므로 매우 유리해진다 따라..
1. 문제 17178번: 줄서기 (acmicpc.net) 17178번: 줄서기 아이즈원의 팬인 시온이는 드디어 티켓팅에 성공하여 콘서트를 갔다. 콘서트장에 일찍 도착한 시온이는 기대하며 입장을 위해 줄을 섰다. 하지만 아이즈원의 인기대로 시온이를 포함한 많은 www.acmicpc.net 2. 풀이 문제를 읽어보면서 구조를 잘 생각해보면.. n개의 줄에 다섯명씩 있는데 앞 사람부터 입구에 입장을 할건데 티켓 순서대로 입장을 수행한다 근데 티켓 순서는 알파벳이 사전 순서대로, 그리고 숫자가 작은 순서대로가 먼저 오는것이다 입장을 하는데 내 순서가 아니면 대기줄에서 들어갈 순서가 맞는 사람인지 검사해서 들어갈 사람이면 보내주고 그래도 들어갈 사람이 없으면 현재 대기줄이 아닌 사람은 대기공간에 들어가야할 것이다..
1. 문제 9935번: 문자열 폭발 (acmicpc.net) 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 2. 풀이1 주어진 첫번째 문자열에서 제시된 두번째 문자열을 모두 지우고 합친다음에, 또 두번째 문자열이 존재한다면 지우고 합쳐서... 이를 반복해서 더이상 지울 문자열이 존재하지 않으면 그것을 출력하면 되는 간단한 문제 단순히 replace 함수를 사용하면 그냥 시간초과다 replace 함수가 O(N)보다 조금 더 걸린다고 함 from sys import stdin s1 = stdin...
1. 문제 1120번: 문자열 (acmicpc.net) 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net 2. 풀이 생각보다 어렵다... 첫번째 문자열에 앞에 알파벳 넣어보고... 혹은 뒤에 알파벳 넣어보고... 두번째 문자열과 길이가 같아질때 비교해서 서로 다른 문자의 개수 세보고... 그러면 26개 알파벳 리스트 만들어서 중복조합으로 길이 차이만큼 뽑아서 앞 뒤로 넣어보고 비교해보나..?? 두 문자열 길이의 차이가 k이면.. k개 모두 임의의 알파벳 26개 앞에 넣어보..
1. 문제1 18310번: 안테나 (acmicpc.net) 18310번: 안테나 첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다. www.acmicpc.net 2. 풀이 수직선 위에 위치한 점 중에서 모든 점까지 거리 합이 최소인 점의 좌표는 어떻게 찾을 수 있을까 직관적으로는 점의 좌표를 오름차순으로 정렬하고 당연히 중앙에 위치한 점이 모든 점까지 거리 합이 최소인 점일텐데 왜 그런지를 한번 생각해본다면.. 수직선 위에 집이 있을때, 맨 왼쪽 집에서부터 시작해서 오른쪽으로 한칸씩 이동한다고 생각해보자 1부터 시작해서 오른쪽으로 이동한다고 해보면... 왼쪽 집 1개와 거리가 +1 하지..
1. 문제1 5052번: 전화번호 목록 (acmicpc.net) 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 2. 풀이1 한 번호가 다른 번호의 접두어인 경우가 없어야한다 번호를 트라이에 순차적으로 저장하다가, 마지막을 나타내는 플래그 '*'을 만난다면, 지금 저장하려는 번호는 다른 번호의 접두어가 될 것이다 class Trie: def __init__(self): self.head = {} def add(self,word): current_node = self.head #문자열의 ..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.