All Posts

[Baekjoon 9493] 길면 기차, 기차는 빨라, 빠른 것은 비행기 | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/9493문제 거리와 기차의 속도, 비행기의 속도가 주어졌을 때 얼마나 비행기가 빠르게 도착하는지 구하는 문제이다. 풀이 주어지는 속도는 시속인데 마지막 정답을 출력할 때는 초까지 나타내야 하기 때문에 속도를 초속으로 바꿔준다.시간은 거리 나누기 속도이므로 비행기와 열차의 시간 차이는 아래와 같이 계산할 수 있다.$$ \frac{distance}{train} - \frac{distance}{air} = time $$$$ \frac{distance(air - train)}{air \times train} = time $$계산된 시간은 비행기와 열차의 시간 차를 초로 나타낸 것인데 이걸 시, 분, 초로 계산해서 출력하면 된다.출력 형식은 분과 초는 두 ..
[Baekjoon 5698] Tautogram | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/5698문제 문장의 모든 단어가 같은 글자로 시작하면 Tautogram 이라고 한다.주어진 문장이 Tautogram 인지 판별하는 문제이다. 풀이 map 과 split 을 이용해서 단어들을 끊어주고, 각 단어들이 같은 글자로 시작하는지 확인하면 되는 간단한 문제이다. 주의해야 할 것은 주어지는 문장은 대소문자가 구분되어 있지만 단어들을 검사할 때는 대소문자 구분없이 검사해야 한다. 따라서 입력받을 때 upper 나 lower 을 통해 문장 전체를 대문자나 소문자로 변환해주는 것이 좋다.단어들을 검사할 때는 단어를 [0] 으로 인덱싱하여 첫 글자와 비교해도 좋지만, startswith 를 통해서 비교하는 것이 명확하게 시작점을 비교할 수 있기 때문에..
[Baekjoon 5692] 팩토리얼 진법 | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/5692문제 주어진 수가 팩토리얼 진법으로 표현된 수일 때 이를 10 진법으로 바꿔주는 문제이다.10 진법은 $ i $ 번째 자리의 수가 $ a $ 일 때 이를 $ a \times 10^i $ 로 본다면 팩토리얼 진법에서는 $ a \times i! $ 로 본다고 한다. 풀이 그대로 따라서 변환해주면 된다.주어진 수를 각 자리와 값으로 나눠주고, 위 팩토리얼 진법을 통해 계산하면 된다.첫 번째 자리부터 계산하는 것이 편하므로 주어진 수를 문자열로 입력받아 반전시켜주고, enumerate를 통해 index와 값을 가져와준다. 이때 index+1은 자리이다.가져온 값과 index+1의 팩토리얼을 곱한 것들을 모두 더해주면 10 진법으로 표현된 수를 계산..
[C] 기본 자료형 크기와 범위
·
Language/C & C++
자료형 C 언어에서 자료형은 데이터의 종류를 의미한다. 변수나 상수 등의 데이터는 이 자료형에 따라 정의되기 때문에, 자료형의 성질을 이해해야 각 변수나 상수의 특성을 정확히 파악하고 적절한 자료형을 사용할 수 있다.자료형은 크게 기본 자료형과 사용자 정의 자료형으로 나뉜다. 기본 자료형은 다시 정수형, 부동소수점형(실수형), 문자형으로 나뉘고, 사용자 정의 자료형은 구조체, 공용체, 열거형으로 나뉜다.사용자 정의 자료형은 기본 자료형을 기반으로 만들어지기 때문에, 기본 자료형에 대한 이해가 있어야 사용자 정의 자료형도 효과적으로 다룰 수 있다. 예를 들어, 구조체는 여러 가지 자료형을 하나로 묶은 자료형인데 이때 구조체 내부에서 사용되는 자료형들은 기본 자료형이다. 물론 구조체나 공용체 내부에 다른 구..
[Baekjoon 28432] 끝말잇기 | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/28432문제 끝말잇기를 한 단어들이 주어지고, 그 중 ? 에 해당하는 단어를 찾는 문제이다.후보군 중에서 끝말잇기 조건인 앞 단어의 가장 뒷 글자를 첫 글자로 가지면서, 뒷 단어의 가장 앞 글자를 마지막 글자로 가지는 단어를 찾아야 한다.단 끝말잇기에 사용된 단어는 ? 가 될 수 없다. 풀이 조건을 만족하기 위해 ? 가 등장하는 위치를 찾고 그 앞 단어의 가장 뒷 글자와 그 뒷 단어의 가장 앞 글자를 알아낸다. 단 ? 가 가장 앞에 주어지거나 가장 뒤에 주어지는 경우에는 앞 단어나 뒷 단어가 없으므로 주의해야 한다.이때 경우의 수가 다음과 같이 여러 개로 나뉘어 진다.끝말잇기 단어가 ? 하나이고, 후보 단어도 하나인 경우이 경우에는 문제의 답이 ..
[Baekjoon 1004] 어린 왕자 | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/1004문제 출발점에서 도착점까지 이동하면서 최소한의 행성계만 진입/이탈하려 한다.이때 행성계를 진입/이탈하는 횟수를 구하는 문제이다.단 행성계의 경계가 서로 맞닿거나 교차하는 경우는 없고, 출발점과 도착점이 행성계 경계에 걸친 경우도 없다. 풀이 행성계의 경계가 서로 맞닿거나 교차하는 경우가 있었다면 복잡해졌겠지만 다행히 이 경우는 없다. 따라서 행성계의 진입/이탈 횟수를 구하는 것은 출발점과 도착점이 얼마나 많은 행성계 안에 있는지 구하면 쉽게 확인할 수 있다. 예를 들어서 문제에 예시 그림을 보면 출발점은 한 개의 행성계 안에 있고, 도착점은 두 개의 행성계 안에 있으므로 총 세 번의 진입/이탈이 일어난다.만약 행성계의 경계가 서로 맞닿거나 ..
[Baekjoon 27065] 2022년이 아름다웠던 이유 | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/27065문제 어떤 수가 있을 때 그 수의 자기 자신을 제외한 약수들의 합이 그 수보다 크면 과잉수, 같으면 완전수, 작으면 부족수라고 한다.어떤 양의 정수 $ n $ 이 주어질 때 $ n $ 이 과잉수이면서 $ n $ 의 모든 약수가 과잉수가 아닌지 구하는 문제이다. 풀이 먼저 약수를 구하는 알고리즘을 사용해야 한다. 이 문제에서는 양의 정수만 고려하기 때문에 양수인 경우만 생각한다.양수인 경우 자기 자신보다 작으면서 자기 자신을 나누었을 때 나머지가 0 인 수를 찾으면 약수이다.이 문제의 경우 주어지는 양의 정수 $ n $ 이 5000 보다 작으므로 쉽게 나머지가 0 인 수를 찾겠다.약수를 구하여 리스트로 반환하는 함수를 구현했다면, 이 함수를..
애스터로이드
'분류 전체보기' 카테고리의 글 목록 (22 Page)