반응형

Algorithm/백준 212

[백준 알고리즘] 2609번: 최대공약수와 최소공배수 (Python)

https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 소스코드 풀이 ★ 최대공약수는 유클리드 호제법을 통해 구해주고, 최소공배수는 두 자연수의 곱을 최대공약수로 나눠서 구해줍니다 ! ★ 최대공약수 구하는 방법 참고 ! https://hyul-mode.tistory.com/entry/%EB%B0%B1%EC%A4%80-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-1934%EB%B2%88-%EC%B5%9C%EC%86%8C%EA%B3%B5%EB%B0%B0%EC%88%98-Python [백준 알고리즘] ..

Algorithm/백준 2023.06.13

[백준 알고리즘] 1934번: 최소공배수 (Python)

https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 소스코드 풀이 ★ 최소공배수는 주어진 두 자연수의 곱을 두 자연수의 최대공약수로 나눈 값과 같습니다. ex) 두 자연수 a,b. 두 수의 최대공약수 r. 최소공배수 => a*b // r ★ 최대공약수를 구하기 위해 유클리드 호제법 알고리즘을 사용해줍니다. 유클리드 호제법은 a와 b의 나머지를 구하는데, 나머지가 0이 되었을 때 두 자연수를 나누는 수가 최대공약수가 됩니다 ! e..

Algorithm/백준 2023.06.13

[백준 알고리즘] 4153번: 직각삼각형 (Python)

https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 소스코드 풀이 ★ a,b,c (c가 가장 긴변)가 주어졌을 때 a^2 + b^2 = c^2이면 직각삼각형. 이 공식을 사용하여 푸는 문제입니다 ! ★ 저는 테스트 케이스에 c가 가장 큰 수이길래 무작정 위와 같은 공식을 그대로 대입하였는데, 틀렸다는 결과를 받았습니다 ! 그 이유는 c가 가장 크다는 조건이 문제에 없기 때문입니다. (문제 잘 읽어야 함) ★ 그렇기에 입력값을 리스트로 받은 후 그 리스트를 오름차순 ..

Algorithm/백준 2023.06.13

[백준 알고리즘] 1259번: 팰린드롬수 (Python)

https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 소스코드 풀이 ★ 입력으로 0이 들어오면 반복문을 종료해줍니다. ★ 반복문을 입력의 길이를 2로 나눈 몫만큼만 돌아줍니다. 이 때 문자열의 처음과 끝이 일치하는지 확인해야 하기 때문에 a[i] != a[-1-i]를 해줍니다. 인덱스로 음수의 값이 들어가면 문자열의 뒤부터 검색합니다 ! ★ 만약 일치하지 않으면 no를 출력한 뒤 break 해주고, 반복문이 break이 없이 정상적으로 끝난 경우 그 수는 팰린드롬 ..

Algorithm/백준 2023.06.13

[백준 알고리즘] 2747번: 피보나치 수 (Python)

https://www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 소스코드 풀이 ★ 재귀로 풀었을 때 시간초과가 떴습니다. 그래서 반복문을 사용하였고, 정상적으로 통과하였습니다 !

Algorithm/백준 2023.06.13

[백준 알고리즘] 11719번: 그대로 출력하기2 (Python)

https://www.acmicpc.net/problem/11719 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net 소스코드 풀이 ★ try ~ except문을 사용하여 에러가 발생하지 않았을 경우에는 input 값을 그대로 출력해주고, 에러가 발생하는 경우엔 반복문을 종료해줍니다 ! ★ 파이썬으로 알고리즘을 풀 때 입력값을 빠르게 받기 위해 sys.stdin.readline과 같은 입력형식을 많이 사용하는데, 이번 문제는 출력 초과가 뜨게 됩니다 ! 그 이유와 관련해서는 아래에 포스팅을 ..

Algorithm/백준 2023.06.13

[백준 알고리즘] 17224번: APC는 왜 서브태스크 대회가 되었을까? (Python)

https://www.acmicpc.net/problem/17224 17224번: APC는 왜 서브태스크 대회가 되었을까? 2019년 올해도 어김없이 아주대학교 프로그래밍 경시대회(Ajou Programming Contest, APC)가 열렸다! 올해 새롭게 APC의 총감독을 맡게 된 준표는 대회 출제 과정 중 큰 고민에 빠졌다. APC에 참가하는 참가 www.acmicpc.net 소스코드

Algorithm/백준 2023.06.08

[백준 알고리즘] 22864번: 피로도 (Python)

https://www.acmicpc.net/problem/22864 22864번: 피로도 첫 번째 줄에 네 정수 $A$, $B$, $C$, $M$이 공백으로 구분되어 주어진다. 맨 처음 피로도는 0이다. www.acmicpc.net 소스코드 풀이 ★ 문제에서 주어진 조건들을 잘 고려하여 구현한다면 어렵지 않게 풀 수 있는 문제 같습니다 ! ★ 제가 헷갈렸던 부분은 피로도가 음수로 내려갈 때인데, 현재 피로도에서 휴식을 취한 경우 그 값이 음수가 되는 때를 말하는 것인지 아니면 일단 휴식을 부여한 뒤 그 피로도를 뜻하는지 였습니다 ! ★ 누적되는 피로도 a가 m보다 크다면 일을 할 수 없기 때문에 0을 출력해줍니다. 아닐 경우 반복문을 돌게 되는데 하루는 총 24시간이기 때문에 clock이라는 변수를 1로..

Algorithm/백준 2023.06.08
반응형