[백준 / BOJ] 2609번 최대공약수와 최소공배수 (C++, Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 6. 7. 20:47[백준 / BOJ] 2609번 최대공약수와 최소공배수 (C++, Python)

링크 : https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 문제 문제 풀이 나의 설명보다는 아래 링크를 참고하는것이 훨씬 좋을 것 같다. 유클리드 호제법을 활용하면 된다. https://sectumsempra.tistory.com/77 [백준2609]-최대공약수와 최소공배수(C++)/유클리드 호제법 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. ..

[백준 / BOJ] 1037번 약수 (C++, Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 6. 6. 02:37[백준 / BOJ] 1037번 약수 (C++, Python)

링크 : https://www.acmicpc.net/problem/1037 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되 www.acmicpc.net 문제 문제 풀이 잘 생각해보면 모든 약수가 주어지는데 본인과 1이 포함되어있지 않다 했으므로 가장 작은 값과 가장 큰 값을 곱하면 답이다. C++ 코드 전문 HTML 삽입 미리보기할 수 없는 소스 Python 코드 전문 HTML 삽입 미리보기할 수 없는 소스 소감

[백준 / BOJ] 5086번 배수와 약수 (C++, Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 6. 6. 02:30[백준 / BOJ] 5086번 배수와 약수 (C++, Python)

링크 : https://www.acmicpc.net/problem/5086 5086번: 배수와 약수 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. www.acmicpc.net 문제 문제 풀이 약수와 배수의 성질을 활용하면 쉽게 풀린다. C++ 코드 전문 HTML 삽입 미리보기할 수 없는 소스 Python 코드 전문 HTML 삽입 미리보기할 수 없는 소스 소감

[백준 / BOJ] 1358번 하키 (C++, Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 6. 5. 12:00[백준 / BOJ] 1358번 하키 (C++, Python)

링크 : https://www.acmicpc.net/problem/1358 1358번: 하키 첫째 줄에 수 W H X Y P가 주어진다. P는 선수의 수이다. W와 H는 100보다 작거나 같은 자연수이고, H는 짝수이다. X와 Y는 절댓값이 100보다 작거나 같은 정수이다. P는 최대 50인 자연수이다. 둘째 줄부 www.acmicpc.net 문제 문제 풀이 뭔가 복잡해보이지만, 조건을 나눠서 풀면 쉽게 풀리는 문제다. 사각형에 있을 경우 왼쪽 반원에 있을 경우 오른쪽 반원에 있을 경우 위 조건들로 만들어주었다. C++ 상세 풀이 더보기 int calc_dist(int x, int y, int a, int b) { return ((x - a) * (x - a)) + ((b - y) * (b - y)); ..

[백준 / BOJ] 1004번 어린 왕자 (C++, Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 6. 5. 01:45[백준 / BOJ] 1004번 어린 왕자 (C++, Python)

링크 : https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net 문제 문제 풀이 터렛 문제와 유사한 아이디어를 가진다. 사진과 코드의 주석을 참고하면 된다. 1번의 경우에는 dist1 radius 이므로 경유해야 한다. 이는 dist1과 dist2가 바뀌어도 성립한다. 2번의 경우에는 dist1 < radius, dist2 < radius 이므로 경유 자체를 하지 않아도 된다. C++ 코드 전문 HTML ..

[백준 / BOJ] 1002번 터렛 (C++, Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 6. 4. 12:42[백준 / BOJ] 1002번 터렛 (C++, Python)

링크 : https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 문제 문제 풀이 문제를 딱 보자마자 접근 방법이 떠오른다면 쉬운 문제이고, 그렇지 않다면 어려운 문제일 것이다. 무려 정답률이 20%정도다. 두 원의 위치 관계를 활용해야한다. 대략 이 사진이 아직도 떠오른다면 쉽게 풀 수 있는 문제다. C++ 코드 전문 HTML 삽입 미리보기할 수 없는 소스 Python 코드 전문 HTML 삽입 미리보기할 수 없는 소스 소감

[백준 / BOJ] 2477번 참외밭 (C++, Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 6. 3. 20:30[백준 / BOJ] 2477번 참외밭 (C++, Python)

링크 : https://www.acmicpc.net/problem/2477 2477번: 참외밭 첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지 www.acmicpc.net 문제 문제 풀이 나는 좀 다르게 풀었는데, 정석적인 방법은 "육각형이므로 가로, 세로의 최댓값이 나온 시점에서 '가로의 index에서 +3, +4 index의 요소들이 작은 사각형의 가로, 세로'" 라고 한다. 그림을 그려보니 아~ 그렇네 싶지만 솔직히 어떻게 발견하나 싶다. 일단 알아만 두어야겠다. point라는 별개의 배열을 만들어서 동서남북이 1, 2, 3, 4로 주어진다 했으니 ..

[백준 / BOJ] 3009번 네 번째 점 (C++, Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 6. 2. 20:21[백준 / BOJ] 3009번 네 번째 점 (C++, Python)

링크 : https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 문제 문제 풀이 x좌표에서 하나만 나온 수, y좌표에서 하나만 나온 수를 출력하면 된다. C++ 코드 전문 HTML 삽입 미리보기할 수 없는 소스 Python 코드 전문 HTML 삽입 미리보기할 수 없는 소스 소감

[백준 / BOJ] 1085번 직사각형에서 탈출 (C++, Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 6. 2. 20:19[백준 / BOJ] 1085번 직사각형에서 탈출 (C++, Python)

링크 : https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 문제 문제 풀이 그림을 그려보면 쉽게 풀린다. C++ 코드 전문 HTML 삽입 미리보기할 수 없는 소스 Python 코드 전문 HTML 삽입 미리보기할 수 없는 소스 소감

[백준 / BOJ] 11478번 서로 다른 부분 문자열의 개수 (C++, Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 6. 1. 22:23[백준 / BOJ] 11478번 서로 다른 부분 문자열의 개수 (C++, Python)

링크 : https://www.acmicpc.net/problem/11478 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 문제 문제 풀이 부분 문자열을 만드는 핵심 알고리즘만 짜면 되는 문제다. C++의 경우에는 이중 for문으로 구현할 수 있고, 파이썬은 슬라이싱으로 구현할 수 있었다. C++ 상세 풀이 더보기 for (int i = 0; i < str.length(); ++i) { tmp = ""; for (int j = i; j < str.length(); ++j) { tmp += str[j]; _set.insert(tmp); } } 먼저 빈 문자열인 tmp를 만들고, ..

[백준 / BOJ] 1269번 대칭 차집합 (C++, Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 6. 1. 19:51[백준 / BOJ] 1269번 대칭 차집합 (C++, Python)

링크 : https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 문제 문제 풀이 C++ 상세 풀이 더보기 for (int i = 0; i > tmp; mpA[tmp] = tmp; } for (int i = 0; i > tmp; mpB[tmp] = tmp; } 일단 A - B, B - A를 구해야 한다. 이를 위해 우선 mpA, mpB에 ..

[백준 / BOJ] 1764번 듣보잡 (C++, Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 6. 1. 19:47[백준 / BOJ] 1764번 듣보잡 (C++, Python)

링크 : https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 문제 문제 풀이 C++ 상세 풀이 더보기 map과 vector을 활용해서, 이미 있는 글자면 벡터에 추가해주는 식으로 풀었다. for (int i = 0; i > str; mp[str]++; if (mp[str] > 1) v.push_back(str); } Python 상세 풀이 더보기 집합끼리 & 해주면 교집..

image