목록데이터 엔지니어링 정복/Algorithm (159)
지구정복
https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net -문제해설 저번 포스팅인 스택과 비슷한 문제인 큐를 구현하는 문제이다. 스택에서는 ArrayList를 사용했는데 이번에는 배열을 사용해서 풀어봤다. 전역변수로 큐를 나타낼 배열과 배열의 인덱스값인 idx를 선언했다. 특히 pop할 때 배열의 값들을 앞으로 한 칸씩 땡기고 idx값도 -1을 해줌으로써 구현할 수 있었다. 파이썬은 편한게 그냥 pop( index ) 메소드사용하면 한 ..
https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net -문제해설 자바의 경우 ArrayList를 이용해서 풀었다. 배열로 할 경우 pop명령어의 경우 인덱스를 신경쓰는게 귀찮았기 때문이다. ArrayList를 쓰면 remove() 메소드를 사용할 수 있기 때문이다. 물론 코드의 효율은 배열을 이용하는게 더 좋다. 그리고 if문을 이용해서 명령어를 나눴는데 다른 사람 코드보니깐 switch문을 이용할 수 있었다. 나는 switch문은..
https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net -문제해설 처음에 자바로 이분탐색으로 풀었는데 아무리해도 시간초과가 나왔다.. ㅠ 결국 해시맵을 이용한 풀이로 바꿔서 풀었다. 이 외에도 n의 입력값들을 배열의 인덱스로 설정한 뒤 푸는 방법도 존재한다. 파이썬은 배열 인덱스에 입력값을 추가하는 방법으로 풀었다. 이때 숫자의 범위가 -10,000,000 ~ 10,000,000이므로 배열의 크기는 20,000,001..
https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net -문제해설 저번에 풀었던 균형잡힌 세상의 쉬운버전이다. 테스트케이스 수인 t를 입력받고 t만큼 괄호가 있는 문자열을 입력받는다. () 괄호 쌍이 맞을 경우 YES, 틀릴 경우 NO를 출력하면 되는 문제이다. t만큼 반복되는 반복문 안에서 입력받은 문자열 line을 매개변수로 하는 chkVps( line ) 메소드를 호출한다. 이 메소드에서는 입력받은 문자열 line을..