본문 바로가기

전체 글135

대학로 방탈출카페 덤앤더머 대학로 주변에서 방탈출 카페를 찾다가 후기가 나쁘지 않아서 들어가보았는데요! 사실 방탈출을 자주 하지도 않고 좀 색다른 데이트 할 겸 심심풀이로 가봤어요! 처음 들어가면 나오는 카운터와 음료 이용공간인데 깔끔하고 좋았습니다. 또 센스있게 락커에 충전기가 있더라구요? 감동했네요 ㅎㅎ 각 방으로 들어가는 문들이 있는 복도인데, 엄청나게 길어서 놀랐네요! 방의 내부는 사진을 찍을 수 없어서 안찍었는데, 아주 재미있었어요! 난이도가 생각보다 높았구, 스토리도 꽤나 탄탄해서 정말 재미있었어요 ㅎㅎ http://www.dumbndumber.kr/ 덤앤더머 방탈출카페 덤앤더머 방탈출, 대학로 방탈출, 혜화 방탈출, 방탈출카페, 대학로 놀거리, 홍대 방탈출, 합정 방탈출, 상수 방탈출, 방탈출할인 www.dumbndu.. 2023. 3. 26.
무럭이 보호되어 있는 글 입니다. 2023. 3. 13.
비빔국수 재료 소면, 원하는 고명(닭가슴살 1덩이) 양념(2~3인분 기준) :고추장 크게 2숟갈, 간장2, 올리고당2, 고춧가루2, 다진마늘1, 참기름2, 참깨2 레시피 1. 면을 삶는다. 2. 양념을 전부 섞는다. 존맛 2023. 3. 13.
[백준] 2293번 동전 1 (Python) 정답 코드 및 풀이는 맨 아래에 있습니다. https://www.acmicpc.net/problem/2293 다이나믹 프로그래밍은 전체적으로 구상이 매우 어려운 것 같다. 골드 5문제인데도 체감 난이도는 골드 1 정도 된다. [문제] n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라도 사용할 수 있다. 사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다. [입력] 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같.. 2023. 2. 24.
[백준] 18353번 병사 배치하기 (Python) 정답 코드 및 풀이는 맨 아래에 있습니다. https://www.acmicpc.net/problem/18353 구상하기에 조금 헷갈렸던 다이나믹 프로그래밍 문제였다. [문제] N명의 병사가 무작위로 나열되어 있다. 각 병사는 특정한 값의 전투력을 보유하고 있으며, 병사를 배치할 때는 전투력이 높은 병사가 앞쪽에 오도록 내림차순으로 배치를 하고자 한다. 다시 말해 앞쪽에 있는 병사의 전투력이 항상 뒤쪽에 있는 병사보다 높아야 한다. 또한 배치 과정에서는 특정한 위치에 있는 병사를 열외시키는 방법을 이용한다. 그러면서도 남아있는 병사의 수가 최대가 되도록 하고 싶다. 예를 들어, N=7일 때 나열된 병사들의 전투력이 다음과 같다고 가정하자. 이 때 3번 병사와 6번 병사를 열외시키면, .. 2023. 2. 23.
다이나믹 프로그래밍 - 금광 [문제] n x m 크기의 금광이 있다. 금광은 1 x 1 크기의 칸으로 나누어져 있으며, 각 칸은 특정한 크기의 금이 들어 있다. 채굴자는 첫 번째 열부터 출발하여 금을 캐기 시작한다. 맨 처음에는 첫 번째 열의 어느 행에서든 출발할 수 있다. 이후에 m번에 걸쳐서 매번 오른쪽 위, 오른쪽, 오른쪽 아래 3가지 중 하나의 위치로 이동해야 한다. 결과적으로 채굴자가 얻을 수 있는 금의 최대 크기를 출력해라. 만약 다음과 같이 3 x 4 크기의 금광이 존재한다고 가정하자. [입력] 첫째 줄에 테스트 케이스 T가 입력된다.(1 2023. 2. 23.
닭갈비 재료 닭다리살 2 덩이, 양배추 1/4개, 양파 1개, 작은 감자 1개, 파 약간 양념 : 시중에 판매되는 닭갈비용 양념, 다진 마늘 1, 청양고추 1숟가락 레시피 1. 재료를 모두 미리 준비해둡니다. 닭다리살은 먹기 좋은 사이즈로 잘라서 양념에 버무려주고, 야채는 토막 내줍니다. 2. 팬에 야채를 바닥에, 고기를 위에 올리고 중~강불을 켜줍니다. 3. 지글지글해지면 저어주면서 야채에도 양념을 버무려줍니다. 4. 다 버무려졌고 야채에서 물도 살짝 나왔다면 중~약불로 낮추고 계속 저어줍니다. 닭이 익었다 싶으면 살짝 물어 진짜 익었나 체크해 봅니다. 국물도 살짝 간을 보고 약하다면 소스를 추가해 줍니다. 야채들이 숨이 죽고, 닭이 다 익었다면 불을 꺼줍니다. 4. 마무리로 통깨를 뿌려줍니다. 메모 굉장히 .. 2023. 2. 23.
다이나믹 프로그래밍 - 효율적인 화폐 구성 [문제] N가지 종류의 화폐가 있다. 이 화폐들의 개수를 최소한으로 이용해서 그 가치의 합이 M원이 되도록 하려고 한다. 이때 각 화폐는 몇 개라도 사용할 수 있으며, 사용한 화폐의 구성은 같지만 순서만 다른 것은 같은 경우로 구분한다. 예를 들어 2원, 3원 단위의 화폐가 있을 때는 15원을 만들기 위해 3원을 5개 사용하는 것이 가장 최소한의 화폐 개수이다. [입력] 첫째 줄에 N,M이 주어진다(1 2023. 2. 22.
다이나믹 프로그래밍 - 1로 만들기 [문제] 정수 X가 주어질 때 정수 X에 사용할 수 있는 연산은 다음과 같이 4가지이다. X가 5로 나누어떨어지면, 5로 나눈다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. X에서 1을 뺀다. 정수 X가 주어졌을때, 연산 4개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 예를 들어, 정수가 26이면 다음과 같이 계산해서 3번의 연산이 최솟값이다. 26 - 1 = 25 25 / 5 = 5 5 / 5 = 1 [입력] 첫째 줄에 정수 X이 주어진다. (1 2023. 2. 22.
다이나믹 프로그래밍 - 개미전사 [문제] 개미전사는 부족한 식량을 충당하고자 메뚜기 마을의 식량창고를 몰래 공격하려고 한다. 메뚜기 마을에는 여러 개의 식량창고가 있는데 식량창고는 일직선으로 이어져 있다. 각 식량창고에는 정해진 수의 식량을 저장하고 있ㄷ으며 개미 전사는 식량창고를 선택적으로 약탈하여 식량을 빼앗을 예정이다. 이때 메뚜기 정찰병들은 일직선상에 존재하는 식량창고 중에서 서로 인접한 식량창고가 공격받으면 바로 알아챌 수 있다. 따라서 개미 전사가 정찰병에게 들키지 않고 식량창고를 약탈하기 위해서는 최소한 한 칸 이상 떨어진 식량창고를 약탈해야 한다. 예를 들어 식량창고 4개가 다음과 같이 존재한다고 가정하자. {1, 3, 1, 5} 이때 개미 전사는 두 번째 식량창고와 네 번째 식량창고를 선택했을 때 최댓값.. 2023. 2. 21.
다이나믹 프로그래밍 이론 다이나믹 프로그래밍이란 일반적인 알고리즘 문제를 더 빠르게 해결하기 위해 생긴 기법이다. 다이나믹 프로그래밍은 다음 두 가지 조건을 만족할 때 사용 가능하다. 최적 부분 구조 큰 문제를 작은 문제로 나누고, 작은 문제들의 답을 모아 큰 문제를 해결할 수 있다. 중복되는 부분 문제 동일한 작은 문제들이 반복된다. 이렇게 얘기한다면 크게 와닿지 않는다. 재귀함수의 기본인 피보나치 수열을 예시로 들어보겠다. def fibo(n): if (n == 1 or n == 2): return 1 return (fibo(n - 1) + fibo(n - 2)) 피보나치 수열 함수는 다음과 같이 작성할 수 있다. 이 부분을 잘 모르겠다면 재귀함수를 공부해야한다. 위의 함수를 이용해 f(6)을 구하고자 한다면 그 함수는 f(.. 2023. 2. 21.
[백준] 12015번 가장 긴 증가하는 부분 수열 2 (Python) 정답 코드 및 풀이는 맨 아래에 있습니다. https://www.acmicpc.net/problem/12015 도저히 구상할 수가 없어서 다른 코드를 참고하였다. 다른 코드를 보아도 왜 그런지 원리를 정확히 이해하는 것은 너무 어려웠다. 알고리즘을 적용시키는 스킬을 늘려주는 문제이다. [문제] 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. [입력] 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 .. 2023. 2. 17.
찜닭 닭다리살을 순살로 2키로를 구매했다. 닭다리살을 산 기념으로 찜닭에 도전해 보았다! 자취요리 박무땡님의 콜라찜닭 영상을 참고하였다. 재료 닭다리살 한덩이(200g?), 당근 1/3개, 양파 1/2개, 감자 1개 양념 : 콜라(닭이 2/3 잠길 만큼), 간장 3, 굴소스 2 레시피 1. 해동시킨 닭다리살을 살짝 삶는다. 불순물 및 잡내 제거 2. 살짝 겉이 익었다 싶으면 물을 다 버리고 닭을 자른다. 나는 크게 잘랐는데 먹기 좋게 한입 크기로 자르는 게 더 나을 듯 3. 콜라를 닭이 2/3 정도 잠길 만큼만 넣고 끓인다. 이때 간장과 굴소스를 넣는다. 콜라는 단맛과 색감용도이므로, 콜라가 없다면 설탕, 물엿, 올리고당 등으로 대체 가능 3. 6~7분 후에 야채를 넣으라고 했지만, 나는 순살로 하므로 4~5.. 2023. 2. 17.
[백준] 1300번 K번째 수 (Python) 정답 코드 및 풀이는 맨 아래에 있습니다. https://www.acmicpc.net/problem/1300 '의외로 이분 탐색으로 풀 수 있는 놀라운 문제 1'라고 설명되는 문제이다. 실제로 그랬다. 구상이 상당히 어려웠다. 처음 보았을 땐 이분탐색 알고리즘으로 푸는 방법이 전혀 생각나지 않았다. 구상이 어려워 다른 풀이를 조금 참고하여 풀었다. [문제] 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B의 인덱스는 1부터 시작한다. [입력] 첫째 줄에 배열의 크기 N이 주어진다. N은 10^5보다 작거나 같은 자.. 2023. 2. 16.
[백준] 2110번 공유기 설치 (Python) 정답 코드 및 풀이는 맨 아래에 있습니다. https://www.acmicpc.net/problem/2110 이분 탐색 문제인 것을 알고 푸니까 쉽게 보였지만, 모르고 푼다면 구상하기에 꽤 어려울 것 같은 문제이다. [문제] 도현이의 집 N개가 수직선 위에 있다. 각각의 집의 좌표는 x_1, ..., x_N이고, 집 여러개가 같은 좌표를 가지는 일은 없다. 도현이는 언제 어디서나 와이파이를 즐기기 위해서 집에 공유기 C개를 설치하려고 한다. 최대한 많은 곳에서 와이파이를 사용하려고 하기 때문에, 한 집에는 공유기를 하나만 설치할 수 있고, 가장 인접한 두 공유기 사이의 거리를 가능한 크게 하여 설치하려고 한다. C개의 공유기를 N개의 집에 적당히 설치해서, 가장 인접한 두 공유기 사이.. 2023. 2. 15.
[백준] 1654번 랜선 자르기 (Python) 정답 코드 및 풀이는 맨 아래에 있습니다. https://www.acmicpc.net/problem/1654 어렵지 않은 이분 탐색 문제였다. [문제] 집에서 시간을 보내던 오영식은 박성원의 부름을 받고 급히 달려왔다. 박성원이 캠프 때 쓸 N개의 랜선을 만들어야 하는데 너무 바빠서 영식이에게 도움을 청했다. 이미 오영식은 자체적으로 K개의 랜선을 가지고 있다. 그러나 K개의 랜선은 길이가 제각각이다. 박성원은 랜선을 모두 N개의 같은 길이의 랜선으로 만들고 싶었기 때문에 K개의 랜선을 잘라서 만들어야 한다. 예를 들어 300cm 짜리 랜선에서 140cm 짜리 랜선을 두 개 잘라내면 20cm는 버려야 한다. (이미 자른 랜선은 붙일 수 없다.) 편의를 위해 랜선을 자르거나 만들 때 손실되.. 2023. 2. 15.
[백준] 10816번 숫자 찾기 (Python) 정답 코드 및 풀이는 맨 아래에 있습니다. https://www.acmicpc.net/problem/10816 이분 탐색을 이용한 문제이다. [문제] 숫자 카드는 정수 하나가 적혀 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오. [입력] 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이.. 2023. 2. 15.
[백준] 1920번 수 찾기 (Python) 정답 코드 및 풀이는 맨 아래에 있습니다. https://www.acmicpc.net/problem/1920 쉬운 이분 탐색 문제였다. [문제] N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. [입력] 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -2^31 보다 크거나 같고 2^31보다 작다. [출력] M개의 줄에 답을 출력한다. 존재하면 1을, 존재하.. 2023. 2. 14.
이진 탐색 - 정렬된 배열에서 특정 수의 개수 구하기 [문제] N개의 원소를 포함하고 있는 수열이 오름차순으로 정렬되어 있습니다. 이때 이 수열에서 x가 등장하는 횟수를 계산하세요. 예를 들어 수열 {1,1,2,2,2,2,3}이 있을 때 x = 2라면, 현재 수열에서 값이 2인 원소가 4개이므로 4를 출력합니다. 단, 이 문제는 시간 복잡도 O(logN)으로 알고리즘을 설계하지 않으면 '시간 초과' 판정을 받습니다. [입력] 첫째 줄에 N과 x가 정수 형태로 공백으로 구분되어 입력됩니다. (1 2023. 2. 14.
이진 탐색 - 떡볶이 떡 만들기 이 문제는 백준 나무 자르기 문제와 동일한 문제로 아래 링크에서 채점이 가능합니다. https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net [문제] 오늘 동빈이는 여행 가신 부모님을 대신해서 떡집 일을 하기로 했다. 오늘은 떡볶이 떡을 만드는 날이다. 동빈이네 떡볶이 떡은 재밌게도 떡볶이 떡의 길이가 일정하지 않다. 대신에 한 봉지 안에 들어가는 떡의 총 길이는 절단기로 잘라서 맞춰준다... 2023. 2. 14.