본문 바로가기

Algorithm

(2139)
(C++) - 백준(BOJ) 13610 : Volta https://www.acmicpc.net/problem/13610 13610번: Volta No automobilismo é bastante comum que o líder de uma prova, em determinado momento, ultrapasse o último colocado. O líder, neste momento, está uma volta à frente do último colocado, que se torna, assim, um retardatário. Neste problema, dados os tem www.acmicpc.net 간단한 수식과 for문을 써보는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 가장 빠른 운전자의 한 랩 완주 시간초인 x와 가장 느린 운전자의 ..
(C++) - 백준(BOJ) 1388 : 바닥 장식 https://www.acmicpc.net/problem/1388 1388번: 바닥 장식 형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나 www.acmicpc.net greedy로 푼 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 n행 m열을 선언 후 입력한 다음 이차원 배열 room에 n행 m열만큼 구조를 입력해줍니다. 체크 배열 ck도 선언해줍니다. 📔 풀이과정 0행 0열부터 시작해 체크가 안되어있으면 다음을 수행합니다. 1. 체크가 안된 위치가 i행 j열인 경우 ans++ 후 그 값을 변수 shape에 저장합니다. 2. shape이 '-'라면 '|'가 나오기 전..
(C++) - 백준(BOJ) 2098 : 외판원 순회 https://www.acmicpc.net/problem/2098 2098번: 외판원 순회 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 16) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j www.acmicpc.net dp 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 1. n, 도시로 가는 비용 cost, d배열을 선언합니다. 2. n입력 후, n행, n열만큼 i -> j도시로 가는 비용들을 cost에 입력합니다. 📔 풀이과정 n이 16인 경우 도시의 경로는 16!로 매우 많습니다. 16개의 도시를 순열로 배열하는 것과 같기 때문입니다. 도시의 상태를 빠르게(O(1)) 알..
(C++) - 백준(BOJ) 2922 : 즐거운 단어 https://www.acmicpc.net/problem/2922 2922번: 즐거운 단어 상근이는 자신이 다니는 학교에서 영어단어를 가장 많이 외우고 있다. 그 비법은 바로 조기교육이었다. 상근이는 젖병을 물기도 전에 영어 단어를 외웠다. 따라서, 지금은 자리에 앉으면 사전을 www.acmicpc.net brute force 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 s를 입력받고 그 단어의 길이를 sSize에 저장합니다. 📔 풀이과정 밑줄의 개수는 최대 10개이기 때문에 재귀 형태로 backtracking함으로써 풀 수 있습니다. 1. 기저 case는 모음 또는 자음의 개수가 3이상인경우 0을 반환하게 합니다. depth == sSize라면 l존재 여부를 반환합니다. 2. s[depth]가 밑줄이..
(C++) - 백준(BOJ) 5766번 : 할아버지는 유명해! https://www.acmicpc.net/problem/5766 5766번: 할아버지는 유명해! 각 테스트 케이스마다, 당신의 프로그램은 한 행에 2등인 선수(들)의 번호를 출력해야 합니다. 2등인 선수가 두 명 이상인 경우(동점자 발생), 각 선수 번호를 공백으로 구분하여 오름차순으로 www.acmicpc.net 자료구조 (map, vector)를 사용해보는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 n주의 m명의 상위 랭커들을 입력받기위해 n, m을 선언한 뒤 n * m만큼 입력받습니다. 입력하면서 playerScoreMap에 정보를 저장해줍니다. key는 플레이어 번호, value는 점수입니다. 📔 풀이과정 1. 저장된 playerScoreMap을 순회하며 1등의 점수를 first에 저장합니다..
(C++) - leetcode 2007번 : Find Original Array From Doubled Array https://leetcode.com/contest/biweekly-contest-61/problems/find-original-array-from-doubled-array/ Account Login - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com greedy? 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 나온 수를 세줄 일차원 배열 countNum, 수가 사용되었는지의 여부를 저장할 isUsed 배열, 정답을 반환할 vector ans를 선언합니다. 1. ..
(C++) - 백준(BOJ) 11549번 : Identifying tea https://www.acmicpc.net/problem/11549 11549번: Identifying tea The first line contains an integer T representing the tea type (1 ≤ T ≤ 4). The second line contains five integers A, B, C, D and E, indicating the answer given by each contestant (1 ≤ A, B, C, D, E ≤ 4). www.acmicpc.net for문과 if문을 사용해보는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 cnt, n, 5개의 정수를 입력해줍니다. n은 tea의 이름이 정수형태로 표현된 값입니다. 📔 풀이과정 5개 정수를 입력할 때마..
(C++) - 백준(BOJ) 13908번 : 비밀번호 https://www.acmicpc.net/problem/13908 13908번: 비밀번호 첫 번째 예제의 경우 가능한 비밀번호의 조합은 07, 17, 27, 37, 47, 57, 67, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 87, 97이다. 두 번째 예제의 경우 가능한 비밀번호의 조합은 34, 43이다. www.acmicpc.net brute force 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 1. n , m, 알고있는 숫자정보를 저장할 일차원 배열 know를 선언합니다. 2. n, m을 입력 후 m만큼 알고있는 숫자정보를 입력합니다. 해당 정보를 index로 해서 know[숫자] = 1로 저장합니다. 📔 풀이과정 dfs함수를 수행합니다. 1. n개의 길이만큼 0..