문제 세준이는 양수와 +, -, 그리고 괄호를 가지고 길이가 최대 50인 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다. 그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다. 괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오. 입력 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 출력 첫째 줄에 정답을 출력한다. 핵심아이디어를 생각하지 못한다면 매우 복잡할 수 있는 문제이다. 핵심아이디어는 -가 등장한 이래 모든 숫자를 뺴버리는 것이다. 처음으로..
문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간과 끝나는 시간은 231-1보다 작거..
문제 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) 출력 첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다. 가장 흔히 볼 수 있는 그리디 문제로, 각 동전들의 가치가 나누어 떨어지므로, 동전이 큰것부터 소모를 하는 것이 더 이득이라는 합리적인 판단이 나오기 떄문에 큰 동전..
www.acmicpc.net/problem/10282 10282번: 해킹 최흉최악의 해커 yum3이 네트워크 시설의 한 컴퓨터를 해킹했다! 이제 서로에 의존하는 컴퓨터들은 점차 하나둘 전염되기 시작한다. 어떤 컴퓨터 a가 다른 컴퓨터 b에 의존한다면, b가 감염되면 �� www.acmicpc.net 다익스트라 문제인데 약간의 변형이 있다. 핵심은 다음과 같다. 1. a,b,s로 주어져도 의존성정의에 의해 b->a로 가능 비용이 s이다. 평소처럼 a->b가 s라고 생각하면 안된다. 2. INF가 아닌 값들을 카운트하면 총 감염된 컴퓨터 개수가 나온다. 3. INF를 제외한 distance에서 가장 큰값이 가장 마지막에 감염된 컴퓨터시간으로 정의하면 된다. import sys input = sys.stdin..
꾸준한 개발 공부를 위해서 git에 잔디를 꾸준히 심는 개발자 및 취준생들이 많다. 하지만 저장소를 생성, 수정, 직접 텍스트를 github에서 수정하는 경우를 제외하고 commit 를 하는 경우에는 잔디가 안심어지는 경우가 있다. 매일 1커밋을 실행한다해도 잔디가 심어지지 않으면 성취에 대한 만족감이 느껴지지 않기 때문에 나같은 사례를 방지하고자 글을 쓴다. 커밋해도 잔디가 심어지지 않을 경우에는 "지금 로컬에 등록된 git 이메일이 github에 등록된 이메일과 다르기 떄문이다." git config --list에서 github에서 사용하는 이메일이 나오지 않는다면, 아무리 커밋해도 잔디를 심을 수 없다. git config --global user.email "kjh@naver.com" 위 명령어를..
localhost:4000/playground 에 분명히 플레이 그라운드 설정을 했는데, graphql 화면이 아이콘만 무한로딩이 된다면? helmet 버젼의 문제이다. helmet 4점대 버젼의 이슈로 3점대버젼으로 바꾸면 고쳐진다. yarn remove helmet // 아래 코드로 3점대 버젼 설치하기 yarn add helmet@lastest yarn add @types/helmet 해결완료!
www.acmicpc.net/problem/2665 2665번: 미로만들기 첫 줄에는 한 줄에 들어가는 방의 수 n(1≤n≤50)이 주어지고, 다음 n개의 줄의 각 줄마다 0과 1이 이루어진 길이가 n인 수열이 주어진다. 0은 검은 방, 1은 흰 방을 나타낸다. www.acmicpc.net bfs 심화문제에도 있었던 문제인데, bfs템플릿에다가 다익스트라를 섞어서 푸는 문제이다. 모든곳을 INF로 초기화시킨 dp배열을 만들고 모든곳을 탐색하면서 검은색이면 +1했을때 더 크면 진입해서 작게만들고 흰색방이면 그냥 더 클때 진입해서 값을 작게 만들어준다. 그렇게 되면 dp에는 해당 지점에서 검은색방을 바꿔서 도달할 수 있는 최소값을 갖게 되며, dp[n-1][n-1]에는 최종 결과값이 들어가게 된다. 주의할점..