본문 바로가기

Algorithm

(2139)
(Rust) - 백준(BOJ) 21312 : 홀짝 칵테일 https://www.acmicpc.net/problem/21312 21312번: 홀짝 칵테일 정진이는 특별한 음료를 가지고 있다. 음료들은 정수로 표현되는 고유 번호를 가지고 있다. 정진이는 이 음료들을 섞어 만든 칵테일을 만든다. 이 칵테일은 홀짝 칵테일이라 부르는데, 홀짝 칵 www.acmicpc.net 간단 구현 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 한 줄을 입력 받고 세 개의 정수를 저장할 vector numbers를 선언해 저장합니다. 📔 풀이과정 홀수와 짝수를 나눠 odd, even vector에 저장합니다. 홀수원소들은 ans1에 짝수원소들은 ans2에 곱해 저장합니다. 📔 정답출력 하나라도 홀수가 있다면 짝수는 배제하고 맛을 구하게 됩니다. 그래서 ans1을 출력합니다. 이외에는..
(Rust) - 백준(BOJ) 25494 : 단순한 문제 (Small) https://www.acmicpc.net/problem/25494 25494번: 단순한 문제 (Small) 세 양의 정수 $a$, $b$, $c$가 주어질 때, 다음 조건을 만족하는 정수 쌍 $(x, y, z)$의 개수를 구하시오. $1 \le x \le a$ $1 \le y \le b$ $1 \le z \le c$ $(x\,\bmod\,y) = (y\,\bmod\,z) = (z\,\bmod\,x)$ $(A\,\bmod\,B)$는 $A$를 $B$ www.acmicpc.net 전수조사 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 매 줄을 입력받을 line을 선언한 후 test_case에 parse한 결과를 저장합니다. 이 후 매 test_case마다 a,b,c정보를 저장합니다. 📔 풀이과정 조건에 맞는..
(Python) - 백준(BOJ) 14579 : 덧셈과 곱셈 https://www.acmicpc.net/problem/14579 14579번: 덧셈과 곱셈 첫째 줄에 a, b (1 ≤ a < b ≤ 1000)가 주어진다. www.acmicpc.net 간단 구현 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 범위 a, b를 입력받습니다.정답을 출력할 sum, 매 범위별 sum에 곱할 값을 저장할 piv를 선언 후 0으로 초기화해줍니다. 📔 풀이과정 공식대로 구현합니다. 📔 정답출력 sum%14579를 출력합니다. 📕 Code import sys input = sys.stdin.readline a, b = map(int, input().split()) sum = 0 piv = 0 for i in range (1, a + 1): sum += i piv = sum for..
(Rust) - 백준(BOJ) 16483 : 접시 안의 원 https://www.acmicpc.net/problem/16483 16483번: 접시 안의 원 첫째 줄에 양의 정수 T의 값이 주어진다. 단, T의 값은 10,000 이하이다. www.acmicpc.net 간단한 구현 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 한 줄line을 선언해 입력받고 t 변수를 선언해 이를 저장합니다. 📔 풀이과정 a, b, t를 그림으로 나타내면 다음과 같습니다. 접선과 원의 중심까지의 거리는 b이며 이 선과 접선은 수직이므로 피타고라스의 정리를 이용해 공식을 세울 수 있습니다. $$ b^2 + (t/2)^2 = a^2 $$ 구하려는 값은 $$ a^2 - b^2 $$ 이므로 적절히 이항하면 $$ (t/2)^2 = a^2 - b^2 $$ 가 됩니다. 📔 정답출력 이 공식을 ..
(Rust) - 백준(BOJ) 17350 : 2루수 이름이 뭐야 https://www.acmicpc.net/problem/17350 17350번: 2루수 이름이 뭐야 선수들 중 뭐(anj)라는 이름을 가진 사람이 있으면 "뭐야;"를, 없으면 "뭐야?"를 출력한다. www.acmicpc.net 문제를 잘 읽어야 하는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 정답을 출력할 ans, 입력받을 변수 line을 선언한 후 입력받습니다. 📔 풀이과정 이름이 "뭐" 인 사람이면 ans를 뭐야;로 바꿔줍니다. 📔 정답출력 ans를 출력합니다. 📕 Code use std::io; fn main() { let mut ans = "뭐야?"; let mut line = String::new(); io::stdin().read_line(&mut line).expect("wrong io..
(Rust) - 백준(BOJ) 17094 : Serious Problem https://www.acmicpc.net/problem/17094 17094번: Serious Problem 2의 등장횟수가 더 많다면 2를 출력하고, e의 등장횟수가 더 많다면 e를 출력한다. 등장횟수가 같다면 "yee"를 출력한다. (큰 따옴표 제외) www.acmicpc.net 간단 분기 구현문제였습니다. 📕 풀이방법 📔 입력 및 초기화 2의 개수 one, e의 개수 two, 입력받을 str_len, s를 선언 후 입력받습니다. 📔 풀이과정 1. String으로 입력을 s에 표준 입출력을 위해 선언했었고 때문에 iterator 내장함수가 없기에 chars로 변환해 for loop를 수행합니다.2. 매 문자를 비교해 조건에 따라 one, two에 값을 더해줍니다.* 따옴표의 구분에 따라 자료형이 다..
(Rust) - 백준(BOJ) 16504 : 종이접기 https://www.acmicpc.net/problem/16504 16504번: 종이접기 종이접기와 수학을 좋아하는 주성이는 종이접기와 수학을 한꺼번에 할 수 있는 놀이를 찾아냈다. 바로 N×N 크기를 가지는 색종이의 각 칸에 수를 적어놓고, 색종이를 반으로 접을 때마다 겹치는 www.acmicpc.net 간단한 구현 문제였습니다. 📕 풀이방법 📔 풀이과정 * 한 변의 길이가 2^10이라면 대략 1000 * 1000개의 원소를 입력받게 됩니다. 하나의 원소가 최대 10만일 수 있기 때문에 10만 * 1000 * 1000은 1000억이므로 int범위를 초과할 수 있습니다. 따라서 i64로 선언해줘야 overflow가 나지 않습니다.색종이를 접어 한 칸으로 만드는 것이 결국 모든 칸의 숫자를 더한 결과가 ..
(Rust) - 백준(BOJ) 25286 : 11월 11일 https://www.acmicpc.net/problem/25286 25286번: 11월 11일 11월 11일에는 농업인의 날, 가래떡 데이, 보행자의 날, 대한민국 해군 창설 기념일, 유엔참전용사 추모의 날, 빼빼로 데이 등 다양한 의미를 가진 날이다. 성현이는 11월 11일의 11일 전은 10월 31일, www.acmicpc.net 구현 문제였습니다. 표준 입출력, 자료구조 선언 및 접근 split을 사용해 볼 수 있는 문제였습니다. 📕 풀이방법 📔 풀이과정 * x월 x일의 x일 전은 항상 x월의 1달 전이며 그 달의 말일 입니다. 그렇게 각 월에 해당하는 말일을 vector변수에 저장하고 읽으며 정답을 매 test case마다 출력합니다. * rust는 i8, i16, i32 등의 정수형 변수를 i..