본문 바로가기

Algorithm

(2139)
(C++) - 백준(BOJ) 21771번 : 가희야 거기서 자는 거 아니야 https://www.acmicpc.net/problem/21771 21771번: 가희야 거기서 자는 거 아니야 베게 중 8칸이 가희에 의해 가려졌으므로, 가희는 베게 위에서 자고 있습니다. www.acmicpc.net 간단한 수식 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 길이, 2차원 문자열 board에 정보를 입력합니다. 📔 풀이과정 무조건 직사각형의 형태로 입력받기 때문에 'P'의 개수를 셌을 때 가로 * 세로와 같다면 가희가 베개위에 있지 않다는 의미입니다. 📔 정답출력 'P'의 개수 = 베개의 가로 * 세로라면 0을 아니라면 1을 출력합니다. 📕 Code #include using namespace std; using pii = pair; char board[101][101]; int r,..
(C++) - 백준(BOJ) 8718번 : Bałwanek https://www.acmicpc.net/problem/8718 8718번: Bałwanek W pierwszym wierszu wejścia znajdują się dwie liczby całkowite x, k (1 ≤ x ≤ 106, 1 ≤ k ≤ 105, k < x), oznaczające odpowiednio ilość litrów śniegu w parku oraz z ilu litrów śniegu zbudowana jest jedna z kul śnieżnych bałwana. www.acmicpc.net 방정식을 세워 답을 구하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 x, k를 선언 후 입력받습니다. 📔 풀이과정 눈 사람은 총 세 부분입니다. 따라서 주어진 k는 눈사람을 구성하..
(C++) - 백준(BOJ) 6768번 : Don’t pass me the ball! https://www.acmicpc.net/problem/6768 6768번: Don’t pass me the ball! A CCC soccer game operates under slightly different soccer rules. A goal is only counted if the 4 players, in order, who touched the ball prior to the goal have jersey numbers that are in strictly increasing numeric order with the highest number being the www.acmicpc.net 조합 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 골을 넣은 플레이어의 번호 n을 선언 후 입력받습니다..
(C++) - 백준(BOJ) 1484번 : 다이어트 https://www.acmicpc.net/problem/1484 1484번: 다이어트 첫째 줄부터 한 줄에 하나씩 가능한 성원이의 현재 몸무게를 오름차순으로 출력한다. 가능한 몸무게가 없을 때는 -1을 출력한다. 현재 몸무게는 자연수로 떨어지지 않을 수도 있는데, 이런 경우 www.acmicpc.net 이분탐색 문제입니다. 📕 풀이방법 📔 입력 및 초기화 1. g를 선언, 하나도 답을 찾지 못했을 때를 알기 위한 bool 변수 flag, 제곱수들을 저장할 vector형 변수 square를 선언합니다. 2. g를 입력 후 10만까지의 제곱수를 square에 저장합니다. *10만 * 10만은 100억이므로 int범위를 초과합니다. 수는 long long형으로 저장해줍니다. 📔 풀이과정 1. 현재 몸무게를 ..
(C++) - 백준(BOJ) 2230번 : 수 고르기 https://www.acmicpc.net/problem/2230 2230번: 수 고르기 N개의 정수로 이루어진 수열 A[1], A[2], …, A[N]이 있다. 이 수열에서 두 수를 골랐을 때(같은 수일 수도 있다), 그 차이가 M 이상이면서 제일 작은 경우를 구하는 프로그램을 작성하시오. 예를 들어 www.acmicpc.net 이분탐색 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 1. n, m, 수를 저장할 일차원 배열 a, 답을 저장할 변수 ans를 선언합니다. 2. n, m입력 후 n만큼 수를 a에 입력받습니다. 3. a를 오름차순으로 정렬해줍니다. 📔 풀이과정 n만큼 loop를 돌며 현재보는 값이 a[i]일 때 a[i] + m이상인 index를 a에서 찾습니다. a[i] + m 이상인 값이 존..
(C++) - 백준(BOJ) 14916번 : 거스름돈 https://www.acmicpc.net/problem/14916 14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net greedy 문제였습니다 📕 풀이방법 📔 입력 및 초기화 변수 n을 선언 후 입력받습니다. 📔 풀이과정 1. 만들 수 없는 경우는 1과 3뿐입니다. 그 이상부터는 짝수는 2로, 5가 포함된다면 홀수도 나타낼 수 있기 때문에 표현가능합니다. 따라서 이 경우에는 -1을 출력합니다. 2. 나머지는 최소로 나타내기 위해 최대한 5를 사용하면 되므로 n을 5로 나눈 나머지가 짝수인지 홀수인지 여부에 따라 답이 나뉩니다. 2-1. 짝수인 경우 5로 나눠준 몫 + 5로 나눈 나머지를 2로 나눈 몫이 답이 됩니다. 2-2. 홀수인..
(C++) - 프로그래머스(2020 카카오 인턴십) : 수식 최대화 https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr brute force 문제였습니다. 📕 풀이방법 📔 풀이과정 1. expression으로부터 숫자, 연산자를 각각 분리해 vector 변수 nums, loc에 각자 push_back해줍니다. 그리고 사용되는 연산자의 종류를 vector변수 priority에 push해줍니다. 2. 연산자들이 모여있는 priority를 사전순으로 정렬해줍니다. 3. next_pe..
(C++) - 프로그래머스(2020 카카오 인턴십) : 키패드 누르기 https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 구현문제였습니다. 📕 풀이방법 📔 풀이과정 누른 번호목록이 저장되어 있는 numbers를 순회하며 답 변수 answer에 적절히 답 문자들을 뒤에 붙여주는 방식으로 구현했습니다. 1. 1, 4, 7의 경우는 왼손 2. 3, 6, 9의 경우 오른손 3. ..