PYTHON/Baekjoon
-
[Python] 백준 11653번 - 소인수분해PYTHON/Baekjoon 2024. 4. 9. 16:00
소인수분해 문제 ) 정수 N이 주어졌을 떄, 소인수분해하는 프로그램을 작성하시오. 입력 ) 첫째 줄에 정수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 출력 ) N의 소인수 분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다. 내 풀이 ) N = int(input()) divisor = 2 # 나누는 수를 2로 초기화 while N > 1: while N % divisor == 0: print(divisor) # 소인수 출력 N //= divisor divisor += 1 해설 ) - N //= divisor 은 N = N // divisor과 같음! (N을 divisor으로 나눈 몫을 다시 N에 저장) 결과 )
-
[Python] 백준 10214번 - BaseballPYTHON/Baekjoon 2024. 3. 23. 16:00
Baseball 문제 ) 경근이는 수업 과제의 일환으로 연세대학교의 역사를 조사하고 있었다. 케케묵은 도서관 구석에서 경근이가 발견한 것은 역대 연고전의 야구경기 실황 기록문서였다. 하지만 문서를 가지고 있음에도 불구하고 한 눈에 당시의 경기 승패를 파악하기에는 어려움이 많았는데, 문서에는 회차별 양 팀 획득 점수만이 적혀져 있기 때문이었다. 경근이는 주어진 방대한 자료를 해석하는 것이 귀찮았기 때문에 절친한 프로그래머 친구인 당신에게 도움을 요청했다. 주어진 실황 기록문서에서 어떤 팀이 이겼는지를 알아내 경근이를 도와주자! 입력 ) 입력 파일의 첫 번째 줄에 테스트 케이스의 수를 의미하는 자연수 T가 주어진다. 그 다음에는 T개의 테스트 케이스가 주어진다. 각 테스트 케이스는 9줄에 걸쳐서 입력되며, ..
-
[Python] 백준 10103번 - 주사위 게임PYTHON/Baekjoon 2024. 3. 20. 16:00
주사위 게임 문제 ) 창영이와 상덕이는 게임을 하고 있다. 게임을 시작하는 시점에서, 두 사람의 점수는 모두 100점이다. 게임은 여섯 면 주사위를 사용하며, 라운드로 진행된다. 매 라운드마다, 각 사람은 주사위를 던진다. 낮은 숫자가 나온 사람은 상대편 주사위에 나온 숫자만큼 점수를 잃게 된다. 두 사람의 주사위가 같은 숫자가 나온 경우에는 아무도 점수를 잃지 않는다. 게임이 끝난 이후에 두 사람의 점수를 구하는 프로그램을 작성하시오. 입력 ) 첫째 줄에 라운드의 수 n(1 ≤ n ≤ 15)가 주어진다. 다음 n개 줄에는 두 정수가 주어진다. 첫 번째 정수는 그 라운드에서 창영이의 주사위에 나타난 숫자, 두 번째 정수는 상덕이의 주사위에 나타난 숫자이다. 두 정수는 항상 1보다 크거나 같고, 6보다 작..
-
[Python] 백준 8958번 - OX퀴즈PYTHON/Baekjoon 2024. 3. 19. 16:00
OX퀴즈 문제 ) "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 입력 ) 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다. 출력 ) 각 테스트 케이스마다 점수를 출력한다. 내 풀이 ) # 테스트 케이스 입력받기 T = int(input()) ..
-
[Python] 백준 5355번 - 화성 수학PYTHON/Baekjoon 2024. 3. 18. 16:00
화성 수학 문제 ) 겨울 방학에 달에 다녀온 상근이는 여름 방학 때는 화성에 갔다 올 예정이다. 화성에서는 지구와는 조금 다른 연산자 @, %, #을 사용한다. @는 3을 곱하고, %는 5를 더하며, #는 7을 빼는 연산자이다. 따라서, 화성에서는 수학 식의 가장 앞에 수가 하나 있고, 그 다음에는 연산자가 있다. 입력 ) 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 다음 줄에는 화성 수학식이 한 줄에 하나씩 주어진다. 입력으로 주어지는 수는 정수이거나 소수 첫째 자리까지 주어지며, 0 이상 100 이하이다. 연산자는 최대 3개 주어진다. 출력 ) 각 테스트 케이스에 대해서, 화성 수학식의 결과를 계산한 다음에, 소수점 둘째 자리까지 출력한다. 내 풀이 ) T = int(input()) result ..
-
[Python] 백준 10817번 - 세 수PYTHON/Baekjoon 2024. 3. 12. 16:00
세 수 문제 ) 세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오. 입력 ) 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100) 출력 ) 두 번째로 큰 정수를 출력한다. 내 풀이 ) A, B, C = map(int, input().split()) if A == B == C: print(A) else: if A == B or A == C: second_largest = A elif B == C: second_largest = B else: numbers = [A, B, C] numbers.sort() second_largest = numbers[1] print(second_largest) 해설 ) - split()..
-
[Python] 백준 10869번 - 사칙연산PYTHON/Baekjoon 2024. 3. 11. 16:00
사칙연산 문제 ) 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. 입력 ) 두 자연수 A와 B가 주어진다. (1 ≤ A, B ≤ 10,000) 출력 ) 첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A*B, 넷째 줄에 A/B, 다섯째 줄에 A%B를 출력한다. 내 풀이 ) A, B = map(int, input().split()) # 합 print(A + B) # 차 print(A - B) # 곱 print(A * B) # 몫 print(A // B) # 나머지 print(A % B) 해설 ) - split() 함수는 입력된 문자열을 공백을 기준으로 나눔 - map(int, ...)은 나눠진 각 문자열을 정수로 변환 같은..