본문 바로가기

Algorithm

(2139)
(C++) - 백준(BOJ) 2765 : 자전거 속도 https://www.acmicpc.net/problem/2765 2765번: 자전거 속도 입력은 여러 줄의 데이터로 구성된다. 각 데이터는 지름, 회전수, 시간이 공백으로 구분되어 주어진다. 지름은 inch단위의 실수이며, 회전수는 정수이다. 시간은 초단위의 실수로 주어진다. 입력 www.acmicpc.net 간단한 계산 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 1. case번호를 출력하기 위한 변수 cnt를 선언 후 while loop를 돕니다. 2. loop를 돌면서 inch단위의 바퀴지름 diameter, 초당 회전수 rotated, 측정 시간(초) sec을 선언 후 입력받습니다. 3. 입력 종료 시기는 rotated가 0이 되면 break하는 식으로 구현합니다. 📔 풀이과정 moved를 선..
(C++) - 백준(BOJ) 2547 : 사탕 선생 고창영 https://www.acmicpc.net/problem/2547 2547번: 사탕 선생 고창영 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 빈 줄로 구분되어 있고, 다음과 같이 구성되어 있다. 테스트 케이스의 첫째 줄에 학생의 수 N이 주어진다. 다음 N개의 줄에는 www.acmicpc.net %연산을 이용하는 문제였습니다. (첫 글자 대문자 언어 이름 ) - 문제 명 답 📕 풀이방법 📔 입력 및 초기화 테스트 케이스 수 t를 선언 후 입력받습니다. 📔 풀이과정 t만큼 while loop를 수행합니다. 1. 학생 수 student, 전체 사탕의 수 totalCandy, 사탕의 수 candy를 선언해줍니다. 2. student만큼 loop를 돌며 각 학생이 가지고 있는 사탕의 수를..
(Python) - 백준(BOJ) 2061 : 좋은 암호 https://www.acmicpc.net/problem/2061 2061번: 좋은 암호 암호화 방식 중에는 소수를 이용하는 것들이 많다. 보통은 매우 큰 두 개의 소수를 선택하고, 두 소수를 곱한 값을 암호화에서의 키로 사용하고는 한다. 이러한 방법이 좋은 이유는 일반적으로 www.acmicpc.net 큰 수를 지원하는 언어 python으로 푼 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 k와 l을 선언과 동시에 입력해줍니다. 📔 풀이과정 2부터 l-1까지 loop를 돌며 k를 나눴을 때 나누어 떨어지면 나쁜 수 이므로 답 출력 후 프로그램을 종료합니다.나누어 떨어진 적이 없으면 프로그램은 종료되지 않았기 때문에 loop를 나오고 GOOD를 출력하게 됩니다. 📕 Code import sys k, l ..
(C++) - 백준(BOJ) 2052 : 지수연산 https://www.acmicpc.net/problem/2052 2052번: 지수연산 자연수 N(1 ≤ N ≤ 250)이 주어졌을 때, 2의 -N승을 계산하는 프로그램을 작성하시오. 즉, 1/(2N)을 계산하는 것이다. www.acmicpc.net 부동소수점을 표현하는 방식에서 지나치게 0의 개수가 많아지면 e-13의 식으로 exponential form(scientific notation) 등을 사용해 출력하게 됩니다. 이를 제거하고 출력하는 문제였습니다 📕 풀이방법 📔 입력 및 초기화 2로 나누는 횟수 n, 정답을 출력할 변수 ans를 선언해주고 n에 입력해줍니다. 📔 풀이과정 pow함수를 사용하려면 pow(밑, 지수)식으로 2개의 인자로 넘겨줘야 합니다. 1/2^n형태이므로 pow(0.5, n)이..
(C++) - 백준(BOJ) 1975: Number Game https://www.acmicpc.net/problem/1975 1975번: Number Game 창영이는 심심해서 혼자 재미 없는 게임을 하나 생각해냈다. 숫자 N을 먼저 정하고, 이 숫자를 2진법, 3진법, 4진법, ..., 100만진법, 100만 1진법 등등으로 바꾸어 보면서, 마지막자리에 연속된 0의 www.acmicpc.net 진법 계산을 해보는 수학 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 테스트 케이스의 개수 t, 십진법 수 n을 선언한 후 t만큼 n을 입력해줍니다. 테스트 케이스는 100만, 1000진법까지 살펴봐야하므로 1억의 loop를 돕니다. 아슬아슬한 시간제한 1초를 통과하기 위해 #define fastio를 적용해줍니다. 📔 풀이과정 n을 입력후 i=2 ~ 1000까지 n을..
(C++) - 백준(BOJ) 13580 : Andando no tempo https://www.acmicpc.net/problem/13580 13580번: Andando no tempo Imagine que você tenha uma máquina do tempo que pode ser usada no máximo três vezes, e a cada uso da máquina você pode escolher voltar para o passado ou ir para o futuro. A máquina possui três créditos fixos; cada crédito representa uma certa qua www.acmicpc.net 정렬 후 if문을 사용해보는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 세 credit을 입력할 일차원 배열 a를 선언 후 입..
(C++) - 백준(BOJ) 1864 : 문어 숫자 https://www.acmicpc.net/problem/1864 1864번: 문어 숫자 해류가 매우 느리고 바닥을 기어다니는 생물이 적은 바다 밑바닥에서만 발견되는 잔물결 무늬의 정체는 오랫동안 해양학자들에게 수수께끼였다. 하지만 최근의 연구 성과는 동물 언어학 분야 www.acmicpc.net 자료구조, 문자열, 진수변환 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 1. 문어의 수를 저장할 map변수 m, 문자열을 입력받을 s를 선언해줍니다. 2. 각 문어의 수를 10진수로 변환하기 위한 전처리를 해줍니다. 3. "#"이 나올 때까지 s에 입력해줍니다. 📔 풀이과정 convert()함수를 수행합니다. pow함수를 사용하면 8 ^ 2, 8 ^ 1식으로 지수가 포함된 식을 한번에 구할 수 있습니다. 📔..
(Go) - 백준(BOJ) 2557 : Hello World https://www.acmicpc.net/problem/2557 2557번: Hello World Hello World!를 출력하시오. www.acmicpc.net go 기초 문제였습니다. 📕 풀이방법 📔 풀이과정 main package를 불러오고 출력을 위해 "fmt" module을 import해줍니다. 📔 정답출력 "Hello World!"를 출력합니다. 📕 Code package main import "fmt" func main() { fmt.Println("Hello World!") }