Algorithm/Implementation (750) 썸네일형 리스트형 (Python) - 백준(BOJ) 2338번 : 긴자리 계산 답 www.acmicpc.net/problem/2338 2338번: 긴자리 계산 첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A×B를 출력한다. 각각을 출력할 때, 답이 0인 경우를 제외하고는 0으로 시작하게 해서는 안 된다(1을 01로 출력하면 안 된다는 의미). www.acmicpc.net python이나 js는 긴자리 수 사칙연산을 제공합니다. 이런 문제는 해당 언어로 푸는 것이 적합합니다. Code a = int(input()) b = int(input()) print(a+b) print(a-b) print(a*b) (C++) - 백준(BOJ) 1935번 : 후위 표기식 2 답 www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net stack을 이용해 후위 표기식을 구현했습니다. 풀이방법 1. 알파벳이라면 stack push해줍니다. 2. 알파벳이 아니라면 2개의 피연산자를 pop한 뒤 결과값을 stack push해줍니다. Code #include using namespace std; string operation; stack calculator; map m; int main(){ int n; cin >> n >> operati.. (C++) - 백준(BOJ) 1972번 : 놀라운 문자열 답 www.acmicpc.net/problem/1972 1972번: 놀라운 문자열 대문자 알파벳으로만 이루어져 있는 문자열이 있다. 이 문자열에 대해서 ‘D-쌍’이라는 것을 정의할 수 있는데, 이 문자열에 포함되어 있는, 거리가 D인 두 문자를 순서대로 나열한 것을 이 문 www.acmicpc.net 풀이방법 1. backtracking 알고리즘을 이용해 조합으로 두 개의 문자를 뽑고 그 때의 거리를 계산해 vector에 저장합니다. 2. vector의 index가 곧 거리가 되며 해당 거리에 모인 문자열들이 저장되었으니 매 index마다 문자들을 검사하여 map에 없는 문자열이라면 insert해주고 있는 문자열이라면 놀랍지 않으므로 false를 반환해줍니다. 3. 놀라움의 여부에 따라 적절한 문구를 출력해.. (C++) - 백준(BOJ) 1822번 : 차집합 답 www.acmicpc.net/problem/1822 1822번: 차집합 첫째 줄에는 집합 A의 원소의 개수 n(A)와 집합 B의 원소의 개수 n(B)가 빈 칸을 사이에 두고 주어진다. (1 ≤ n(A), n(B) ≤ 500,000)이 주어진다. 둘째 줄에는 집합 A의 원소가, 셋째 줄에는 집합 B의 원소 www.acmicpc.net map, vector 자료구조를 이용해 간단히 풀 수 있었던 문제였습니다. 풀이방법 1. b의 원소를 key, 해당 원소의 빈도 수를 value로 한 map 자료구조를 만들어 저장합니다. 2. a의 원소들중 map(b의 원소-key, 그 원소가 나온 빈도수-value)에 없는 원소들을 vector 자료구조에 저장합니다. 3. 저장된 vector를 정렬 후 적절히 출력합니다. .. (C++) - 백준(BOJ) 1302번 : 베스트셀러 답 www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 간단한 map을 이용한 구현이었습니다. 풀이방법 1. 책 이름을 key, 책 이름이 나온 빈도 수를 value로 한 map 변수를 만들어 정보를 저장합니다. 2. map 자료구조는 자료를 저장할 떄 key값을 기준으로 오름차순으로 정렬되므로 가장 빈도 수가 높은 값을 찾으면 바로 key값을 출력 후 프로그램을 종료하면 됩니다. Code #include using namespace std; map m; i.. (C++) - 백준(BOJ) 1269번 : 대칭 차집합 답 www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 풀이방법 1. a에 대한 원소를 key, 나온 빈도를 value로 한 map 자료구조를 만듭니다. 2. b의 원소를 map에서 key로 하여 검색했을 때 값이 있다면 a와 공집합에 대한 원소이므로 세줍니다. 3. 답출력 : a원소 개수 + b원소 개수 - (공집합 원소의 개수 * 2)를 출력해줍니다. Code #include using namespace std; map m; int aSize,bSize, .. (C++) - 백준(BOJ) 1021번 : 회전하는 큐 답 www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net deque을 구현하는 문제였습니다. 풀이방법 1. 뽑을 값을 찾을때까지 왼쪽으로 옮겨봅니다. 2. 왼쪽으로 옮기는 연산의 개수를 저장합니다. 3. 해당 개수만큼 원상복귀(우측이동)시켜줍니다. 4. 다시 뽑을 값을 찾을때까지 오른쪽으로 옮겨봅니다. 5. 오른쪽으로 옮기는 연산의 개수를 저장합니다. 6. 해당 개수만큼 원상복귀(좌측이동)시켜줍니다. 7. 더 적은 연산 개수에 해당하는 방향으로 옮겨주고 값을 po.. (C++) - 백준(BOJ) 14891번 : 톱니바퀴 답 www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net simulation 문제였습니다. 풀이방법 1. 매 k 마다 다음을 수행합니다. 1-1. 4개의 톱니바퀴에 대한 회전 방향 계산 후 배열 저장 1-2. 회전 방향 정보대로 톱니바퀴 회전 1-3. 회전 방향 저장 된 배열 초기화 2. 점수 계산 후 출력 Code #include using namespace std; int direction[4]; vector gear; vector getGearVector(s.. 이전 1 ··· 81 82 83 84 85 86 87 ··· 94 다음