# beakjoon
백준-1021번:회전하는 큐_C++
https://www.acmicpc.net/problem/1021 문제 조건 조건 1. > 지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 양 방향에서 원소의 삽입, 삭제가 가능한 deque를 사용해야겠다. deque의 레퍼런스 조건 2-1. > 첫 번째 원소를 뽑아낸다. 이 연산을 수행하면, 원래 큐의 원소가 a1, ..., ak이었던 것이 a2, ..., ak와 같이 된다. deque.pop_front를 사용하자. 조건 2-2. > 왼쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 a2, ..., ak, a1이 된다. 가장 왼쪽의 원소(deque.front)를 복사해 놓고, 삭제(deque.pop_front) 복사한 값을 가장 오

Baekjoon_2559번: 수열
📌문제 매일 아침 9시에 학교에서 측정한 온도가 어떤 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 알아보고자 한다. 예를 들어, 아래와 같이 10일 간의 온도가 주어졌을 때, 3 -2 -4 -9 0 3 7 13 8 -3 모든 연속적인 이틀간의 온도의 합은 아래와 같다. 이때, 온도의 합이 가장 큰 값은 21이다. 또 다른 예로 위와 같은 온도가 주어졌을 때, 모든 연속적인 5일 간의 온도의 합은 아래와 같으며, 이때, 온도의 합이 가장 큰 값은 31이다. 매일 측정한 온도가
킹 퀸 비숍 나이트 룩 폰
백준 문제 3003번 BIJELE Bronze 5 문제 Mirko has found an old chessboard and a set of pieces in his attic. Unfortunately, the set contains only white pieces, and apparently an incorrect number of them. A set of pieces should contain: One king One queen Two rooks Two bishops Two knights Eight pawns Mirko would like to know how many pieces of each type he should add or remove to make a valid set. 입력 The input consists of 6 integers on a single line, each

beakjoon_01.py
문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A+B를 출력한다. ▼ 내 답안 ▼ 결과 런타임 에러(Value Error) ▼ 오답정리 why.... ㅇ3ㅇ?! 왜 틀렸는 지 이해가 되지 않았다가... 예제 입력을 보니 이해가 되었다. 한 줄에 입력을 모두 받아야 한다! ▼ 수정한 답안 map, input().split()에 대해선 아래 링크 참고 https://dojang.io/mod/page/view.php?id=2286
백준 2178 미로 탐색
문제 링크: 미로 탐색 문제 N×M크기의 배열로 표현되는 미로가 있다. 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다. 위의 예에서는 15칸을 지나야 (N, M)의 위치로 이동할 수 있다. 칸을 셀 때에는 시작 위치와 도착 위치도 포함한다. 입력 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. 출력 첫째 줄에 지나야 하는
백준 1260 DFS와 BFS
코테 문제를 풀면서 내가 실수를 하는 부분은 크게 2가지다. >> 1. 변수 크기 잘못 설정 for loop 변수 이름 (중첩 for loop을 다 i로 한다던지...) 혹은 범위 잘못 설정 문제 링크: DFS와 BFS 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. . . 문제 풀이 과정 일단 오랜만에 다시 코테 문제들을 푸는 과정이라 쉬운 문제부터 차근차근 푸는 중이다. DFS (깊이 우선 탐색) 재귀함수나 스택을 이용한다. BFS (너비 우선 탐색) 큐를 이용한다. > 이 부분은 코드를 통해 더 자세하

백준 2775 부녀회장이 될테야
문제 링크: 부녀회장이 될테야 주희의 반상회 주최를 도와봅시다... DP를 완벽히 이해하고자 DP 문제를 연속으로 풀어보았다. 문제 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 입력 첫 번째 줄에 Test case의 수 T가 주어진

백준 1463 1로 만들기
문제 링크: 1로 만들기 문제 풀이 과정 Dynamic Programming 문제이다. DP를 공부하며 참고한 링크 : Dynamic Programming 이 문제를 풀면서 고민을 정말 많이했다. DP 문제를 많이 안 풀어봐서 DP를 공부하면서 풀 겸 결국 검색해서 풀이를 보았다. 참고한 문제풀이 DP 규칙 찾기 일단 전체적으로 한번씩 적으며 dp식이 어떻게 반복되는가를 찾았다. | idx = input| calculation | dp 식 | |---|---|---| | 1 | 0 | dp[1] = 0 | | 2 | 2

백준 2309 일곱 난쟁이
문제 링크 : 일곱 난쟁이 문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명 이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 입력 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. 출력 일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난쟁이를 찾을 수
[BAEKJOON - C++] 10953번 : A+B - 6
C++ 배우기 (101~150) 이 문제집을 참고하여 문제를 풀었습니다. 2023년 1월 ~ 2월에 프로그래밍을 공부하기 위해 풀었던 문제들이다. 🍑문제 >두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. >입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. A와 B는 콤마(,)로 구분되어 있다. (0 출력 각 테스트 케이스마다 A+B를 출력한다. 🍑대략적인 틀 콤마를 기준으로 숫자를 입력받을 수만 있음 되는 문제 🍑 작성한 코드
[BAEKJOON - C++] 10818번 : 최소, 최대
C++ 배우기 (101~150) 이 문제집을 참고하여 문제를 풀었습니다. 2023년 1월 ~ 2월에 프로그래밍을 공부하기 위해 풀었던 문제들이다. 🍑문제 >N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. >입력 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. >출력 첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다. 🍑대략적인 틀 첫째줄에 정수의 개수를 입력한다 32,768 to 32,767 의 범위를 가지는 데이터 타입 __int32 를 새로 알게되었다 정수의 개수만큼 정수를 입력받는다 max
[BAEKJOON - C++] 10807번 : 개수 세기
C++ 배우기 (101~150) 이 문제집을 참고하여 문제를 풀었습니다. 2023년 1월 ~ 2월에 프로그래밍을 공부하기 위해 풀었던 문제들이다. 🍑문제 >총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오. >입력 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다. >출력 첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다. 🍑대략적인 틀 첫째줄에 정수의 개수 입력받기 둘째줄에 공백으로 구분된 정수를 첫째줄의 개수만큼 입력받음. 셋째줄에 내가 개수를 셀 숫자를 입력받음 어떻게 숫자를 셀것인가? →
[BAEKJOON - C++] 2953번 : 나는 요리사다
C++ 배우기 (101~150) 이 문제집을 참고하여 문제를 풀었습니다. 2023년 1월 ~ 2월에 프로그래밍을 공부하기 위해 풀었던 문제들이다. 🍑문제 >"나는 요리사다"는 다섯 참가자들이 서로의 요리 실력을 뽐내는 티비 프로이다. 각 참가자는 자신있는 음식을 하나씩 만들어오고, 서로 다른 사람의 음식을 점수로 평가해준다. 점수는 1점부터 5점까지 있다. 각 참가자가 얻은 점수는 다른 사람이 평가해 준 점수의 합이다. 이쇼의 우승자는 가장 많은 점수를 얻은 사람이 된다. >>각 참가자가 얻은 평가 점수가 주어졌을 때, 우승자와 그의 점수를 구하는 프로그램을 작성하시오. >입력 총 다섯 개 줄에 각 참가자가 얻은 네 개의 평가 점수가 공백으로 구분되어 주어진다. 첫 번째 참가자부터 다섯 번째 참가자까지 순서대로 주어진다. 항상 우승자가 유일한 경우만 입력으로 주어진다.
[BAEKJOON - C++] 2577번 : 숫자의 개수
C++ 배우기 (101~150) 이 문제집을 참고하여 문제를 풀었습니다. 2023년 1월 ~ 2월에 프로그래밍을 공부하기 위해 풀었던 문제들이다. 🍑문제 >세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오. >>예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다. >입력 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. >출력 첫째 줄에는 A × B × C의 결과에 0 이 몇 번 쓰였는지 출력한다
[BAEKJOON - C++] 2460번 : 지능형 기차 2
C++ 배우기 (101~150) 이 문제집을 참고하여 문제를 풀었습니다. 2023년 1월 ~ 2월에 프로그래밍을 공부하기 위해 풀었던 문제들이다. 🍑문제 >최근에 개발된 지능형 기차가 1번역(출발역)부터 10번역(종착역)까지 10개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. 이 장치를 이용하여 출발역에서 종착역까지 가는 도중 기차 안에 사람이 가장 많을 때의 사람 수를 계산하려고 한다. 단, 이 기차를 이용하는 사람들은 질서 의식이 투철하여, 역에서 기차에 탈 때, 내릴 사람이 모두 내린 후에 기차에 탄다고 가정한다. 10개의 역에 대해 기차에서 내린 사람 수와 탄 사람 수가 주어졌을 때, 기차에 사람이 가장 많을 때의 사람 수를 계산하는 프로그램을 작성하시오. >> [자세한 문제 설명 예시는 문제 링크 참
[BAEKJOON - C++] 2908번 : 상수
C++ 배우기 (101~150) 이 문제집을 참고하여 문제를 풀었습니다. 2023년 1월 ~ 2월에 프로그래밍을 공부하기 위해 풀었던 문제들이다. 🍑문제 >상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다. >>두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오. >입력 첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세
[BAEKJOON - C++] 2455번 : 지능형 기차
C++ 배우기 (51~100) 이 문제집을 참고하여 문제를 풀었습니다. 2023년 1월 ~ 2월에 프로그래밍을 공부하기 위해 풀었던 문제들이다. 🍑문제 >최근에 개발된 지능형 기차가 1번역(출발역)부터 4번역(종착역)까지 4개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. 이 장치를 이용하여 출발역에서 종착역까지 가는 도중 기차 안에 사람이 가장 많을 때의 사람 수를 계산하려고 한다. 단, 이 기차를 이용하는 사람들은 질서 의식이 투철하여, 역에서 기차에 탈 때, 내릴 사람이 모두 내린 후에 기차에 탄다고 가정한다. >> 자세한 예시는 문제링크 참고 >입력 각 역에서 내린 사람 수와 탄 사람 수가 빈칸을 사이에 두고 첫째 줄부터 넷
[BAEKJOON - C++] 1546번 : 평균
C++ 배우기 (51~100) 이 문제집을 참고하여 문제를 풀었습니다. 2023년 1월 ~ 2월에 프로그래밍을 공부하기 위해 풀었던 문제들이다. 🍑문제 >세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. >>예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다. >>>세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오. >입력 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나
[BAEKJOON - C++] 2506번 : 점수 계산
C++ 배우기 (51~100) 이 문제집을 참고하여 문제를 풀었습니다. 2023년 1월 ~ 2월에 프로그래밍을 공부하기 위해 풀었던 문제들이다. 🍑문제 >OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기로 하였다. 1번 문제가 맞는 경우에는 1점으로 계산한다. 앞의 문제에 대해서는 답을 틀리다가 답이 맞는 처음 문제는 1점으로 계산한다. 또한, 연속으로 문제의 답이 맞는 경우에서 두 번째 문제는 2점, 세 번째 문제는 3점, ..., K번째 문제는 K점으로 계산한다. 틀린 문제는 0점으로 계산한다. >>예를 들어, 아래와 같이 10 개의 OX 문제에서 답이 맞은 문제의 경우에는 1로 표시하고, 틀린 경우에는 0으로 표시하였을 때, 점수 계산은