목록코테준비/백준 (59)
끄적끄적
출처 : https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 왼쪽에서 오른쪽 방향으로 진행한다. 현재 탑과 stack 안에 있는 top을 비교하여 top보다 현재 탑이 크면 현재 탑에 부딪히므로 top은 필요가 없어서 pop하고 현재탑 push top보다 현재 탑이 작으면 pop시키지 않고 현재탑 push(우선순위는 거리이므로) 이때 top에 해당하는 탑을 pop하지 않는 이유는 뒤에 현재탑보다 크면서 top보다 작은 탑이 존재할 수 있기 때문 ..
출처 : https://www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 www.acmicpc.net 1. c++ push할 때 미리 곱해주고 이 묶음을 끝내는 쌍을(닫는 괄호) 찾으면(가장 안쪽 괄호-> 따라서 가장 직전의 값이 되는 것) 그동안 곱해진 값을 answer에 더해주고 tmp를 곱했던 만큼 나눠주기 나머지 닫는 괄호는(스택의 top) 이미 계산되었으므로 따로 answer에 더하지 않는다. 2. python python stack 리스트로 처리 push -> append()..

1. 괄호 (9012) 출처 : https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net *stack 구현시 list 사용 input으로 받아진 문자열 s를 바로 list로 집어넣어준다. 그 다음, sum 변수를 두어 증가/감소 시켜주며 비교해나가면 된다. 2. 카드2 (2164) 출처 : https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터..

1. 크로아티아 알파벳 출처 : https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 풀이 - 크로아티아 알파벳이 담긴 리스트를 선언 후, for문을 사용하여 해당 리스트를 돈다. - 리스트의 각 원소가 입력 문자열에 있다면 그 부분을 *로 치환해주고, 그 외에는 전부 한 글자이므로 for문을 다 돌고 난 후, 입력 문자열의 길이를 출력해주면 된다. 배운 것
출처 : https://www.acmicpc.net/problem/21736 헌내기는 친구가 필요해 1 초 (하단 참고) 1024 MB 277 134 121 63.684% 문제 2020년에 입학한 헌내기 도연이가 있다. 도연이는 비대면 수업 때문에 학교에 가지 못해 학교에 아는 친구가 없었다. 드디어 대면 수업을 하게 된 도연이는 어서 캠퍼스 내의 사람들과 친해지고 싶다. 도연이가 다니는 대학의 캠퍼스는 N×M 크기이며 캠퍼스에서 이동하는 방법은 벽이 아닌 상하좌우로 이동하는 것이다. 예를 들어, 도연이가 (x, y)에 있다면 이동할 수 있는 곳은 (x+1, y), (x, y+1), (x−1, y), (x, y−1)이다. 단, 캠퍼스의 밖으로 이동할 수는 없다. 불쌍한 도연이를 위하여 캠퍼스에서 도연이가..

출처 : https://www.acmicpc.net/problem/1004 어린 왕자 2 초 128 MB 20709 8222 6724 41.406% 문제 어린 왕자는 소혹성 B-664에서 자신이 사랑하는 한 송이 장미를 위해 살아간다. 어느 날 장미가 위험에 빠지게 된 것을 알게 된 어린 왕자는, 장미를 구하기 위해 은하수를 따라 긴 여행을 하기 시작했다. 하지만 어린 왕자의 우주선은 그렇게 좋지 않아서 행성계 간의 이동을 최대한 피해서 여행해야 한다. 아래의 그림은 어린 왕자가 펼쳐본 은하수 지도의 일부이다. 빨간 실선은 어린 왕자가 출발점에서 도착점까지 도달하는데 있어서 필요한 행성계 진입/이탈 횟수를 최소화하는 경로이며, 원은 행성계의 경계를 의미한다. 이러한 경로는 여러 개 존재할 수 있지만 적어..
출처 : https://www.acmicpc.net/problem/14247 나무 자르기 2 초 512 MB 394 145 118 40.972% 문제 영선이는 나무꾼으로 나무를 구하러 오전에 산에 오른다. 산에는 n개의 나무가 있는데, 영선이는 하루에 한 나무씩 n일 산에 오르며 나무를 잘라갈 것이다. 하지만 이 산은 영험한 기운이 있어 나무들이 밤만 되면 매우 빠른 속도로 자라는데, 그 자라는 길이는 나무마다 다르다. 따라서, 어느 나무를 먼저 잘라가느냐에 따라서 총 구할 수 있는 나무의 양이 다른데, 나무의 처음 길이와 하루에 자라는 양이 주어졌을 때, 영선이가 얻을 수 있는 최대 나무양을 구하시오. 참고로, 자른 이후에도 나무는 0부터 다시 자라기 때문에 같은 나무를 여러 번 자를 수는 있다. 입력..
출처 : www.acmicpc.net/problem/2003 문제 N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i] + A[i+1] + … + A[j-1] + A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. 출력 첫째 줄에 경우의 수를 출력한다. 예제 입력 1 4 2 1 1 1 1 예제 출력 1 3 투포인터 의도로 출제한 문제