Lucky Charms Clover

분류 전체보기

🥧 Python/⚙️ 코딩테스트

[백준-Python] 4101번: 크냐?

4101번: 크냐? 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 두 정수가 주어진다. 두 수는 백만보다 작거나 같은 양의 정수이다. 입력의 마지막 줄에는 0이 www.acmicpc.net 풀이 두 양의 정수가 주어졌을 때 첫 번째 수가 두 번째 수보다 큰지 판별하면 된다. 테스트 케이스가 주어지고 첫 번째 수가 두 번째 수보다 크면 Yes, 아니면 No를 출력하면 된다. 입력의 마지막 줄에는 0이 2개 주어진다. (이놈이 킥이다.) 테스트 케이스가 주어지면 무조건 T = int(input())으로 시작했는데 이 문제의 입력을 보면 그런 게 없다. 그냥 A, B 부터 주어도 된다. # A, B = map(int, input().split()) 아니 근데 ..

🥧 Python/⚙️ 코딩테스트

[백준-Python] 2480번: 주사위 세개

2480번: 주사위 세개 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개 www.acmicpc.net 풀이 1~6의 눈을 가진 주사위 3개가 있다. 1. 같은 눈이 3개 나오면 10000+같은눈*1000 2. 같은 눈이 2개 나오면 1000+같은눈*100 3. 다 다른 눈이 나오면 가장 큰 눈*100 입력할 첫째 줄에는 주사위 3개의 눈이 각각 나오면 된다 if문으로 풀 수 있는데 마찬가지로 조금 지저분해진다. 같은 눈 2개의 경우 a == b != c / b == c != a / c == a != b 3가지 경우를 다 구해야 해서 코드 1번처럼 ..

🥧 Python/⚙️ 코딩테스트

[백준-Python] 10039번: 평균 점수

10039번: 평균 점수 입력은 총 5줄로 이루어져 있고, 원섭이의 점수, 세희의 점수, 상근이의 점수, 숭이의 점수, 강수의 점수가 순서대로 주어진다. 점수는 모두 0점 이상, 100점 이하인 5의 배수이다. 따라서, 평균 점 www.acmicpc.net 풀이 5명의 점수가 5줄로 입력된다. 40점 이상인 학생들의 점수는 원래 점수로 입력되지만, 40점 미만인 경우에는 40점으로 입력된다. 학생 5명의 점수가 주어졌을 때 평균 점수를 구해보라. 학생을 a, b, c, d, e라고 했을 때 각각 int(input())으로 점수를 받는다. 처음에는 아래와 같이 if문으로 풀었다. 만약 a의 점수가 40점 미만이라면 a = 40 이런 식으로 a, b, c, d, e 모두 적어주고 print((a+b+c+d+..

🥧 Python/⚙️ 코딩테스트

[백준-Python] 2753번: 윤년

2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 www.acmicpc.net 풀이 연도가 주어진다. 윤년이면 1 아니면 0을 출력한다. 윤년은 연도가 4의 배수면서 100의 배수가 아닐 때 또는 400의 배수일 때다 연도 Y = int(input()) 4의 배수임 >> Y % 4 == 0 100의 배수가 아님 >> Y % 100 != 0 400의 배수임 >> Y % 400 == 0 배수일 때는 나머지가 0, 아닐 때는 0이 아니다라고 적어주면 된다. ~면서 > and 또는 > or 을 활용해서 풀면 된다. 코드 Year = in..

🥧 Python/⚙️ 코딩테스트

[백준-Python] 1789번: 수들의 합

1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 풀이 서로 다른 N개의 자연수의 합이 S 일 때 자연수 N의 최댓값을 구해야 한다. 서로 다른 N개의... 뭐? 싶은데 초등학생 때 배운 공식이 있다. S = n(n+1)/2 S 를 6라고 해보자 2S = n(n+1) 12 = n(n+1) n = 3 그럼 최댓값은 3이 되는 것이다. 이걸 while 문으로 계속 반복해보자. n = 1 while n*(n+1)/2

🥧 Python/⚙️ 코딩테스트

[백준-Python] 11653번: 소인수분해

11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 풀이 첫째 줄에 정수 num을 입력하고 소인수분해를 한 결과가 한 줄씩 오름차순으로 나오면 된다 이제 보니 오름차순이 중요하군 num = int(input()) 이 num을 소인수분해하려면, 2부터 1씩 더해 나눠지는지 확인하면 된다. num이 어떤 수로 나눴을 때 0이 나오는지 보고, 나오지 않으면 어떤 수 +1 을 해서 0이 나올 때까지 돌린다. num을 12로 예시를 들어보자. 12 % 2 == 0: 12 =/ 2 6 =/ 2 3 2 2 3 이렇게 출력되면 된다. 소인수분해는 더 이상 나눠지지 않을 때까지 나누고 그 나눠진 몫과 마지막 나머지를 보여주는 거라서 이렇게 쓰면 되는..

카테고리 없음

[백준-Python] 10817번: 세 수

10817번: 세 수 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100) www.acmicpc.net 풀이 첫째 줄에 세 정수 A, B, C가 공백으로 구분도이어 주어진다. 이 때 두 번째로 큰 정수를 출력하면 된다. 내가 좋아하는 if문으로 풀 수는 있는데, 이건 A, B, C 세 수여서 그나마 가능한 일이다. 무려 6가지의 상황을 고려해서 써야 하는데 수가 많아지면 힘들고 또 복잡해져서 이번에는 리스트를 활용해서 문제를 풀었다. 리스트 생성 > 오름/내림차순 정렬 > 리스트의 1번째 인덱스 (=2번째 요소) 출력 세 수여서 오름/내림 상관 없지만 수가 늘어나면 원래는 내림차순으로 풀어야 2번째 큰 요소를 찾을 수 있다. 오름차순 sort() / 내림차순..

🥧 Python/⚙️ 코딩테스트

[백준-Python] 9498번: 시험 성적

9498번: 시험 성적 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 첫째 줄에 시험 점수를 입력한다. S = int(input()) 90 - 100은 A 80 - 89는 B 70 - 79는 C 60 - 69는 D 나머지는 F 내가 좋아하는 if문으로 풀면 매우 간단하다. A 는 if, B~D는 elif, F는 그외 모든 경우이므로 else 로 구하면 된다. 코드 S = int(input()) if 90

🥧 Python/⚙️ 코딩테스트

[백준-Python] 2935번: 소음

2935번: 소음 수업 시간에 떠드는 두 학생이 있다. 두 학생은 수업에 집중하는 대신에 글로벌 경제 위기에 대해서 토론하고 있었다. 토론이 점점 과열되면서 두 학생은 목소리를 높였고, 결국 선생님은 크게 www.acmicpc.net 풀이 첫째 줄에 양의 정수 A 둘째 줄에 연산자 + 또는 * 셋째 줄에 양의 정수 B가 주어진다. 첫째 줄에 결과가 나오면 된다. 연산자 Y는 str으로 받으면 된다. A = int(input()) Y = input() B = int(input()) Y가 *일 경우 > A*B Y가 +일 경우 > A+B if문으로 각 경우를 나누고 print하면 된다. 코드 A = int(input()) Y = input() B = int(input()) if Y == '*': print(A..

🥧 Python/⚙️ 코딩테스트

[백준-Python] 2675번: 문자열 반복

2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 풀이 문자열 S를 입력 받고 '각 문자'를 R번 반복해 새로운 문자열 P를 만든다. 첫째 줄에는 테스트 케이스의 개수를 입력한다. ex. 3 2 ABC >> AABBCC 4 AB >> AAAABBBB 5 A >> AAAAA 이런 식으로 나온다고 보면 된다. T = int(input()) for i in range(T): R, S = input().split() R = int(R) (지금 둘다 str으로 받았기 때문에 숫자인 R은 정수화 시켜줘야 한다.)..