🏆 PS(Problem Solving)

1. 문제https://www.acmicpc.net/problem/14467 2. 풀이과정-1로 초기화되어 있는 크기 10 배열에 소의 번호를 인덱스로 하여 소의 위치를 저장한다.-1이면 새로운 소이므로 추가0, 1이면 새로 위치한 소이므로 새로운 위치로 갱신 후 count  1 증가 3. Javascript 코드const fs = require('fs');const filepath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';const input = fs.readFileSync(filepath).toString().trim().split('\n');const n = input[0];const arr= input.slice(1).map(l..
1. 문제 https://www.acmicpc.net/problem/1715 2. 풀이과정카드 묶음을 합쳐가면서 비교를 수행하는데 최소의 비교로 합친다면 최소 몇번의 비교가 필요한지 묻는 문제 즉, 우리는 "현재 존재하는 카드 묶음 중에서, 가장 적은 2개의 묶음을 우선적으로 계산" 하는 것이 정답이라는 것을 파악했습니다. ex) 5 4 3 2 1 카드 묶음이 이렇게 구성되어 있다면 (1+2) + (3+3) + (6+4 )+ (10+5) 이전 카드 묶음의 비교횟수가 다음 카드 비교횟수에 영향을 주기 때문에 가장 적은 카드 묶음을 계속 합쳐야합니다!!✏ 알고리즘N개의 카드 묶음에서 가장 작은 두 개를 골라 합친다 -> 합친 두 카드를 카드 묶음에 넣는다 -> 반복 N개의 카드 묶음에서 최소값 2개를 꺼내기..
1. 문제https://www.acmicpc.net/problem/6198 2. 풀이과정1. 먼저 스택이 비어있는 상태니까 첫번째 빌딩의 높이를 스택에 넣는다. 2. 두번째 입력부터 아래 로직을 거친다.스택에 들어있는 빌딩 높이들 중에 입력받은 빌딩의 높이보다 낮은 빌딩은 다 뺍니다.낮은 빌딩을 다 뺐다면 스택에는 입렵받은 빌딩보다 높거나 아니면 모두 다 빠져서 비어있을 겁니다.이때 스택의 남은 빌딩 수가 곧 입력받은 빌딩을 볼 수 있는 빌딩이므로 count에 저장합니다.3. 위 3단계가 끝나면 스택에 입력받은 빌딩을 스택에 넣어줍니다 예시1. 첫번째 입력건물5개이고 높이 {10, 5, 1 ,3 ,14}가 순차적으로 입력됩니다.현재 스택이 비어있으니 현재 입력 push 합니다. Stack [ 10 ] 2..
1. 문제https://www.acmicpc.net/problem/24511 2. 문제 이해이 문제를 처음 읽으면 "이게 뭐야"라는 말이 절로 나온다.문제 이해만 한다면 정말 쉬운 문제이니 문제 이해부터 진행해 보겠다. 앞부분 입력 각 자료구조(0 : queue, 1 : stack)에 값을 하나씩 넣어두는 과정이라고 생각하면 된다.이렇게 개별적인 큐와 스택을 모아둔 전체를 이 문제에서는 queuestack이라고 한다. 뒷부분 입력 위에서 만든 queuestack에 첫 부분(스택 or 큐)에 push 시킬 값을 입력받는다.queuestack에 push를 시키고 pop을 바로 시킨다.스택이면 push 한 값이 바로 pop큐라면 기존에 들어있던 값이 pop이렇게 pop 된 값이 다음 부분(스택 or 큐)에 p..
1. 문제 https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 2. 풀이과정 키보드 입력, 삭제, 커서의 동작을 코드로 표현하는 문제 커서의 움직임으로 중간의 데이터를 자주 삽입, 삭제를 하므로 list(양방향 연결리스트) 사용 1. 문자열을 입력받고 구성하는 한 문자씩 양방향 연결리스트에 삽입 2. cursor = li.end(); 로 커서(iterator)의 시작점을 두었다. li.end()는 현재 연결리스트의 마지막 요소의 다음위치를 가르킵니다..
1. 문제 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 2. 풀이 과정 입력받은 문자열을 한 글자씩 탐색한다. (, [ 이면 스택에 무조건 push ), ] 일때 스택의 top과 괄호쌍을 이루는 경우에만 pop을 수행한다. 괄호쌍을 이루지 않는 경우엔 flag를 false로 하고 break; 한다. 1. 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있다고 ..
그해 준서는
'🏆 PS(Problem Solving)' 카테고리의 글 목록 (4 Page)