브론즈1 6

백준 [1934.최소공배수] | Python

✏️ 문제 https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net ✏️ 풀이방법 - 앞서 풀어본 2609번의 최대공약수와 최소공배수 소스코드를 제출했다가 바로 시간초과가 떴다. 2609번 문제는 범위가 10,000이하의 자연수이지만 1934번은 45,000만큼의 수이다. 1. 소인수분해를 이용해서 풀이를하면 굉장히 많은 반복이 필요하기 때문에 시간초과가 발생한다. 2. 유클리드 호제법을 이용해서 풀이했다. 📌 코드 t = int(i..

Python/online judge 2024.01.29

백준 [2609.최대공약수와 최소공배수] | Python

✏️ 문제 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net ✏️ 풀이방법 - 최대공약수('GCD':Greatest Common Divison)는 두 개 이상의 수의 공통된 약수 중 가장 큰 약수를 말하고, 최소공배수('LCM':Least Common Multiple)는 두 개 이상의 수의 공통된 배수 중 가장 작은 수를 말한다. - 다음 그림처럼 소인수분해를 통해서 최대공약수와 최소공배수를 구할 수 있다. 1. 최대공약수(gcd)는 두 자연수 a,b를 공통으로 나누는 수(i)를 찾아 리스트(gcd)에 담아서 가..

Python/online judge 2024.01.29

백준 [11653.소인수분해] | Python

✏️ 문제https://www.acmicpc.net/problem/11653 11653번: 소인수분해첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.www.acmicpc.net ✏️ 풀이방법1. 정수n을 소수 중 가장 작은 수 2로 나누는 반복을 수행하는데 2로 나눠떨어지지 않을 때 다음 숫자로 +1을 해서 나눈다. 📌 코드n = int(input())i = 2while True: if n == 1: #n이 1인 경우 아무것도 출력하지 않는다 print("") break if n % i == 0: n = n//i print(i) else: i +=1 📌 결과# 입력72#출력22233# 입력3#출력3# ..

Python/online judge 2024.01.10

백준 [9506.약수들의 합] | Python

✏️ 문제 https://www.acmicpc.net/problem/9506 9506번: 약수들의 합 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. www.acmicpc.net ✏️ 풀이방법 1. 테스트케이스를 수행하다 입력된 값이 -1이라는 조건식을 만족할 때 실행을 멈추어야하기 때문에 for문이 아닌 while문 사용 2. 입력된 값을 입력된 범위까지의 모든 수로 나눴을 때 나머지가 0일경우 약수이므로 해당 조건을 만족하는 원소를 갖는 리스트(divisor)를 생성 3. 리스트(divisor)안에 있는 값을 sum함수의 총합이 입력된 값과 같을 때와..

Python/online judge 2024.01.04

백준 [1157.단어 공부] | Python

✏️ 문제 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net ✏️ 풀이방법 1. 대문자로 출력하기 때문에 모든 알파벳을 대문자로 변경한 str1리스트 2. 중복을 제외하고 어떤 알파벳이 있는지를 담는 str2리스트 3. str과 str2를 비교해서 동일한 알파벳의 개수 count하는 str_cnt리스트 4. str_cnt에 같은 숫자가 2개 이상이면 가장 많이 사용된 알파벳이 여러개이기 때문에 !출력 아닌경우 max값 출력 📌 코드 str = list(input().upper()..

Python/online judge 2023.11.17

백준 [10798.세로읽기] | Python

✏️ 문제 https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net ✏️ 풀이방법 1. 다섯개의 단어를 입력받는 2차원 리스트 선언 2. 단어의 길이가 다를 수도 있기 때문에 단어의 길이를 담는 리스트 선언 3. 입력된 단어 중 가장 긴 길이 만큼 0으로 입력된 리스트를 5번 입력받은 2차원 리스트 선언 4. 입력된 단어의 길이가 길이가 가장 긴 단어와 같지 않다면 입력된 단어만큼 입력하고 그 나머지길이는 !로 대체 5. 출력할 때 새로운 리스트..

Python/online judge 2023.11.17