본문 바로가기

전체 글

(2344)
(C++) - 백준(BOJ) 3986번 : 좋은 단어 www.acmicpc.net/problem/3986 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net stack을 사용하는 간단한 문제였습니다 풀이방법 * stack s가 비어있을 경우 s.top() 함수를 호출한다면 오류가 발생하므로 조심해야 합니다. 모든 단어를 검사하면서 stack이 비어있지 않다면 s.top != 단어인 경우엔 push, s.top != 한 단어인 경우엔 pop해주면 됩니다. 마지막에 stack이 비어있다면 좋은 단어입니다. Code #include using namespace std; int ma..
(C++) - 백준(BOJ) 6502번 : 동혁 피자 답 www.acmicpc.net/problem/6502 6502번: 동혁 피자 대전 ACM-ICPC Regional가 끝나면, 대회 참가자들은 다같이 카이스트 근처의 동혁 피자에 간다. 대회는 5시간동안 진행되므로, 참가자는 모두 배가 매우 고프다. 피자를 최대한 빨리 먹기 위해서, 큰 www.acmicpc.net 간단한 수식으로 충족여부를 결정하는 구현문제였습니다. 풀이방법 1에 해당하는 선분은 피자의 너비/2입니다. 2에 해당하는 선분은 피자의 높이/2 입니다 3번은 따라서 피타고라스 정리에 의해 $\sqrt{ (\frac{너비}{2})^2 + (\frac{높이}{2})^2 }$ 가 됩니다 이 3번 선분의 길이가 식탁 반지름보다 작거나 같으면 fit입니다. Code #include using namesp..
(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) 2985번 : 세 수 답 www.acmicpc.net/problem/2985 2985번: 세 수 첫째 줄에 정인이가 원래 적어준 등식을 출력한다. 입력으로 주어진 숫자의 순서는 유지해야 하고, 등호 하나와 더하기, 빼기, 곱하기, 나누기 기호 중 하나로 이루어져 있어야 한다. 만약 등식 www.acmicpc.net 아주 간단한 구현, 다해보기(brute force) 문제였습니다. 풀이방법 세 수 a,b,c에 대해 a+b=c 꼴의 수식이 될 수 있지만 a=b+c도 되므로 총 8가지의 경우의 수가 됩니다. Code #include using namespace std; int main(){ double a,b,c; cin >> a >> b >> c; if(a + b == c) cout
(C++) - 백준(BOJ) 2428번 : 표절 답 www.acmicpc.net/problem/2428 2428번: 표절 첫째 줄에 제출한 솔루션의 개수 N이 주어진다. 둘째 줄에는 각 솔루션 파일의 크기 size(F1), size(F2), ..., size(FN)이 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ size(Fi) ≤ 100,000,000) 솔루션 파일의 크기는 정수이 www.acmicpc.net 이분탐색 문제였습니다. 풀이방법 * 모든 파일이 크기가 1억으로 동일할 경우 파일의 개수가 10만개라면 pair의 개수가 int범위를 초과할 수 있으니 long long형으로 답과 함수 자료형을 선언했습니다. 1. 입력 file값을 오름차순으로 정렬합니다. 2. 현재 index를 가장 큰 값으로 가정, 0 ~ index - 1까지 파일사이즈가 ..
(C++) - 백준(BOJ) 2343번 : 기타 레슨 답 www.acmicpc.net/problem/2343 2343번: 기타 레슨 강토는 자신의 기타 레슨 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 레슨이 들어가는데, 블루레이를 녹화할 때, 레슨의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경 www.acmicpc.net 이분탐색 문제였습니다. 이분탐색시 pivot역할을 하는 left, right의 초기값과 max값을 잘 생각해 작성해야합니다. 풀이방법 1. 이분탐색시 비교할 초기값 생각하기 : 가장 긴 레슨이 곧 해당 블루레이 길이의 최소가 되므로 이를 left로 두고 right는 블루 레이의 개수가 1개, 10만개의 레슨 개수, 모든 레슨의 길이가 1만일경우 한 블루레이의 길이는 1만 * 10만 = 10000 * 100000 = 1..
(C++) - 백준(BOJ) 2141번 : 우체국 답 www.acmicpc.net/problem/2141 2141번: 우체국 첫째 줄에 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 X[1] A[1], X[2] A[2], …, X[N] A[N]이 주어진다. 범위는 |X[i]|≤1,000,000,000, 0≤A[i]≤1,000,000,000 이며 모든 입력은 정수이다. www.acmicpc.net 이분탐색 문제였습니다. 지문이 헷갈렸는데 먼저 우체국은 무조건 마을이 있는 위치에 세워야 합니다. 1.5 위치같은 소수점 위치에 세우거나 마을이 존재하지 않는 위치에 우체국을 만드는 경우는 없습니다. 또한 우체국을 세운 위치로부터 왼쪽 끝 마을에 위치한 사람들까지의 합, 우체국을 세운 위치 바로 다음 마을부터 오른쪽 끝 마을에 위치한 사람들까지의 합이 ..
(C++) - 백준(BOJ) 2022번 : 사다리 답 www.acmicpc.net/problem/2022 2022번: 사다리 첫째 줄에 차례대로 x, y, c에 해당하는 양의 실수 세 개가 입력된다. 수는 소수점 여섯째 자리까지 주어질 수 있다. www.acmicpc.net 피타고라스 정리, 그래프 식세우기를 이용해 이분탐색을 하는 문제였습니다. 풀이방법 입력받는 x,y를 각각 a,b라고 가정한 뒤 구하려는 값을 k, 두 빌딩의 높이를 각각 A,B라고 가정했습니다. 이 때 가장 왼쪽 하단 꼭지점을 0,0으로 하여 직선 a,b에 대한 방정식을 구했습니다. 이 정보들을 공식으로 표현하면 다음과 같습니다. $A = \sqrt{a^2 - k^2}$ $B = \sqrt{b^2 - k^2}$ 직선 a에 대한 방정식 f(x) $f(x) = -\frac{A}{k}x + ..