목록python/Algorithm (23)
Kim Seon Deok
https://www.acmicpc.net/problem/2485 2485번: 가로수 첫째 줄에는 이미 심어져 있는 가로수의 수를 나타내는 하나의 정수 N이 주어진다(3 ≤ N ≤ 100,000). 둘째 줄부터 N개의 줄에는 각 줄마다 심어져 있는 가로수의 위치가 양의 정수로 주어지며, 가 www.acmicpc.net 임의의 간격으로 가로수가 심어져있다. 각 가로수의 간격이 같도록 가로수를 추가로 심어야 한다. 맨 처음 가로수의 수 N을 입력 받고 임의의 수를 번 입력한다. 이 때 맨 처음 입력한 수는 첫번째에 고정하고 맨 마지막에 입력한 수는 마지막에 고정한다. N번 입력한 수를 already 리스트에 저장하고 이후 인덱스 - 이전 인덱스를 하여 간격을 구했다. 각 인덱스 마다의 간격을 gap_list..
https://www.acmicpc.net/problem/2659 2659번: 십자카드 문제 입력은 한 줄로 이루어지며, 이 한 줄은 카드의 네 모서리에 씌여있는 1 이상 9 이하의 숫자 4개가 시계 방향으로 입력된다. 각 숫자 사이에는 빈칸이 하나 있다. www.acmicpc.net 맨 처음 입력받은 n 은 리스트 형태이다. 이 리스트 형태의 n을 인자로 넣었을 때 맨 처음 인덱스가 맨 끝으로 가도록 반복문으로 넣어준다. 4개의 리스트가 나오게 되는데, 이 4가지 리스트를 new_num_list에 넣어준다. new_num_list에 있는 4개의 리스트를 각각 4자리 정수로 만들어 final_num_list로 넣어준다. final_num_list에 있는 4개의 정수 중 가장 작은 수를 출력한다. 이 가장..
https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 1. 스위치의 처음 상태와 학생 수를 입력받음 2. 스위치가 0일 땐 1로, 1일 땐 0으로 바꾸어 주는 함수 3. 남자일 땐 받은 숫자의 배수에 해당하는 스위치만 바꾸어줌 4. 여자일 땐 받은 숫자에 해당하는 스위치를 기준으로, 좌우 대칭이면서 구간의 길이가 가장 길 때, 전체 구간의 스위치를 바꾸어줌 여자일 경우 좌우대칭으로 최대구간을 바꾸어주는 부분에서 오류가 많이 났었다. while ..
https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 1. 문자열의 길이가 짝수 2. ( 로 시작해 )로 끝나야 한다. 3. ( 와 ) 의 갯수가 같아야 함 라고 접근했지만, ( ) ) ( ( ) 이라는 반례가 있었다. 그래서 1. 맨 처음에 )로 시작 하면 "NO". 2. (를 담기 위한 빈 리스트 vvps 생성. (로 시작하는 경우 2-1 이후에 (가 왔을 때 (를 vvps에 append 2-2 이후에 )가 왔을 때..
https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 1.하루동안 팔린 책의 개수 N이 주어짐 2.N만큼 책의 제목을 입력으로 받음 3.가장 많이 팔린 책의 제목을 출력 4.가장 많이 팔린 책이 여러개일 경우 사전순으로 가장 앞서는 제목을 출력 N = int(input())## 오늘 하루 동안 팔린 책의 개수 book = [] # 팔린 책 제목을 담을 빈 리스트 for i in range (0,N): book.append(input()) # ..