전체 글 224

[백준 python 1316] 그룹 단어 체커

[Silver V] 그룹 단어 체커 - 1316 문제 링크 성능 요약 메모리: 31256 KB, 시간: 44 ms 분류 구현, 문자열 제출 일자 2023년 6월 26일 08:19:29 문제 설명 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다..

[백준 python 2941] 크로아티아 알파벳

[Silver V] 크로아티아 알파벳 - 2941 문제 링크 성능 요약 메모리: 31120 KB, 시간: 40 ms 분류 구현, 문자열 제출 일자 2023년 11월 30일 11:17:27 문제 설명 Expand Down 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다...

[백준 python 1934] 최소공배수

[Bronze I] 최소공배수 - 1934 문제 링크 성능 요약 메모리: 31120 KB, 시간: 40 ms 분류 유클리드 호제법, 수학, 정수론 제출 일자 2023년 12월 13일 19:28:16 문제 설명 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있으며, 최소 공배수는 30이다. 두 자연수 A와 B가 주어졌을 때, A와 B의 최소공배수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 둘째 줄부터 T개의 줄에 걸쳐서 A와 B가 주어진다. (1 ≤ A, B ≤ 45,000)..

[백준 python 10989] 수 정렬하기 3

[Bronze I] 수 정렬하기 3 - 10989 문제 링크 성능 요약 메모리: 31120 KB, 시간: 9604 ms 분류 정렬 제출 일자 2023년 12월 11일 20:53:23 문제 설명 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. import sys input = sys.stdin.readline n = int(input()) count = [0] * 10001 sorted_li = list() for _ in r..

[백준 python 19532] 수학은 비대면강의입니다

[Bronze II] 수학은 비대면강의입니다 - 19532 문제 링크 성능 요약 메모리: 31120 KB, 시간: 700 ms 분류 브루트포스 알고리즘, 수학 제출 일자 2023년 12월 9일 21:31:17 문제 설명 수현이는 4차 산업혁명 시대에 살고 있는 중학생이다. 코로나 19로 인해, 수현이는 버추얼 학교로 버추얼 출석해 버추얼 강의를 듣고 있다. 수현이의 버추얼 선생님은 문자가 2개인 연립방정식을 해결하는 방법에 대해 강의하고, 다음과 같은 문제를 숙제로 냈다. 다음 연립방정식에서 x$x$와 y$y$의 값을 계산하시오. {ax+by=cdx+ey=f\[\begin{cases}ax+by=c\\dx+ey=f\end{cases}\] 4차 산업혁명 시대에 숙제나 하고 앉아있는 것보다 버추얼 친구들을 만..

[백준 python 2231] 분해합

[Bronze II] 분해합 - 2231 문제 링크 성능 요약 메모리: 31120 KB, 시간: 1376 ms 분류 브루트포스 알고리즘 제출 일자 2023년 12월 9일 21:17:41 문제 설명 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,..

[백준 python 14215] 세 막대

[Bronze III] 세 막대 - 14215 문제 링크 성능 요약 메모리: 31120 KB, 시간: 40 ms 분류 기하학, 구현, 수학 제출 일자 2023년 12월 7일 12:57:59 문제 설명 영선이는 길이가 a, b, c인 세 막대를 가지고 있고, 각 막대의 길이를 마음대로 줄일 수 있다. 영선이는 세 막대를 이용해서 아래 조건을 만족하는 삼각형을 만들려고 한다. 각 막대의 길이는 양의 정수이다 세 막대를 이용해서 넓이가 양수인 삼각형을 만들 수 있어야 한다. 삼각형의 둘레를 최대로 해야 한다. a, b, c가 주어졌을 때, 만들 수 있는 가장 큰 둘레를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 a, b, c (1 ≤ a, b, c ≤ 100)가 주어진다. 출력 첫째 줄에 만들 수 있는 가..

[백준 11653] 소인수분해

[Bronze I] 소인수분해 - 11653 문제 링크 성능 요약 메모리: 31252 KB, 시간: 1064 ms 분류 수학, 정수론, 소수 판정 제출 일자 2023년 12월 5일 22:25:06 문제 설명 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. 출력 N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다. n = int(input()) result = [] for i in range(2, n+1): if n % i == 0: while n % i == 0: n //= i result.append(i) print(*result, sep="\n") 풀이 약수로 ..

[백준 1978] 소수 찾기

[Bronze II] 소수 찾기 - 1978 문제 링크 성능 요약 메모리: 31120 KB, 시간: 44 ms 분류 소수 판정, 정수론, 수학 제출 일자 2023년 12월 5일 21:55:11 문제 설명 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. n = int(input()) li = list(map(int, input().split())) if 1 in li: li.remove(1) result = 0 for l in li: count = [] for i in range(1, l+1): if..

[백준 2292] 벌집

[Bronze II] 벌집 - 2292 문제 링크 성능 요약 메모리: 31120 KB, 시간: 44 ms 분류 수학 제출 일자 2023년 12월 2일 19:37:17 문제 설명 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때..