목록python (44)
Kim Seon Deok
스택 : 데이터를 임시 저장할 때 사용하는 자료구조 입력과 출력: 후입선출(LIFO = last in first out)방식 >> 가장 나중에 넣은 데이터를 가장 먼저 꺼낸다 푸시(push) : 스택에 데이터를 넣는 작업 팝(pop) : 스택에서 데이터를 꺼내는 작업 꼭대기(top) : 푸쉬하고 팝하는 윗부분 바닥(bottom) : 아랫부분 >> stk[0] 스택의 크기(capacity) : 스택에 쌓을 수 있는 데이터의 최대 갯수 >> len(stk) 스택 포인터(ptr) : 스택에 쌓여 있는 데이터의 개수를 나타내는 정숫값 -스택이 비어있으면 ptr값은 0, 가득 차 있으면 capacity와 같은 값이 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ..
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 이후에 )가 왔을 때..