Stay Hungry Stay Foolish

BOJ 코딩테스트 184

BOJ 10886번 : 0 = not cute / 1 = cute (Java/구현/Bronze 3)

10886번: 0 = not cute / 1 = cute 준희는 자기가 팀에서 귀여움을 담당하고 있다고 생각한다. 하지만 연수가 볼 때 그 의견은 뭔가 좀 잘못된 것 같았다. 그렇기에 설문조사를 하여 준희가 귀여운지 아닌지 알아보기로 했다. www.acmicpc.net 설명 다음 N개의 줄에는 각 줄마다 각 사람이 설문 조사에 어떤 의견을 표명했는지를 나타내는 정수가 주어진다. 0은 준희가 귀엽지 않다고 했다는 뜻이고, 1은 준희가 귀엽다고 했다는 뜻이다. 준희가 귀엽지 않다는 의견이 더 많을 경우 "Junhee is not cute!"를 출력하고 , 귀엽다는 의견이 많을 경우 "Junhee is cute!"를 출력하라. Solution Java import java.util.Scanner; public..

BOJ 2441번 : 별 찍기 - 4 (Java/구현/Bronze 4)

2441번: 별 찍기 - 4 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 설명 다음과 같이 별을 출력해야 한다. ***** **** *** ** * Solution import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int star = scanner.nextInt(); for(int i = 0; i < star; i++) { for (int j = star - i; j < star; j+..

BOJ 10953번 : A+B - 6 (Python, Java/구현/Bronze 3)

10953번: A+B - 6 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 설명 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 단, A와 B는 콤마(,)로 구분되어 있다. Solution Python t = int(input()) for _ in range(t): print(sum(list(map(int, input().split(","))))) Java import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); //테스트 케이..

BOJ 10797번 : 10부제 (Python, Java/구현/Bronze 4)

10797번: 10부제 서울시는 6월 1일부터 교통 혼잡을 막기 위해서 자동차 10부제를 시행한다. 자동차 10부제는 자동차 번호의 일의 자리 숫자와 날짜의 일의 자리 숫자가 일치하면 해당 자동차의 운행을 금지하는 www.acmicpc.net 설명 자동차 10부제는 자동차 번호의 일의 자리 숫자와 날짜의 일의 자리 숫자가 일치하면 해당 자동차의 운행을 금지하는 것이다. 10부제를 위반하는 자동차의 대수를 출력하면 된다. 풀이 주어지는 일의 자리 숫자와 자동차 번호가 일치하는 것만 찾아서 결과를 출력하면 된다. 반복문을 통해 자동차 번호를 입력하면, 자동차 번호와 일의 자리 숫자가 같은 건 결과값에 1씩 더한다. 입력이 끝나면 결과값을 출력한다. Solution Java import java.util.*;..

BOJ 10101번 : 삼각형 외우기 (Python, Java/구현/Bronze 4)

10101번: 삼각형 외우기 문제의 설명에 따라 Equilateral, Isosceles, Scalene, Error 중 하나를 출력한다. www.acmicpc.net 설명 세 각의 크기가 모두 60이면, Equilateral 세 각의 합이 180이고, 두 각이 같은 경우에는 Isosceles 세 각의 합이 180이고, 같은 각이 없는 경우에는 Scalene 세 각의 합이 180이 아닌 경우에는 Error 를 출력하는 프로그램을 작성하시오. Solution Java import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a, b, c; a = ..

BOJ 2752번 : 세수정렬 (Python, Java/구현/Bronze 4)

2752번: 세수정렬 정수 세 개가 주어진다. 이 수는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 수는 모두 다르다. www.acmicpc.net 설명 정수 세 개가 주어지면, 이를 오름차순으로 정렬하여 출력해야 한다. 풀이 sort() 메소드를 사용 Solution Java import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] num = new int[3]; for(int i = 0; i < 3; i++) { num[i] = sc.nextInt(); } Arrays.sort(num); for(int i = 0; i < ..

BOJ 3003번 : 킹, 퀸, 룩, 비숏, 나이트, 폰 (Python, Java/구현/Bronze 5)

3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. www.acmicpc.net 설명 체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다. 동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른 세트가 되는지 구하는 프로그램을 작성하시오. 입력은 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 출력은 첫째 줄에 입력에서 주어진 순서대로 몇 개의 피스를 더하거나 빼야 되는지를 출력한다. 만약 수가 양수라면 동혁이는 그 개수 만큼 피스를 더해야 하..

BOJ 4999번 : 아! (Python, Java/구현/Bronze 5)

4999번: 아! 입력은 두 줄로 이루어져 있다. 첫째 줄은 재환이가 가장 길게 낼 수 있는 "aaah"이다. 둘째 줄은 의사가 듣기를 원하는 "aah"이다. 두 문자열은 모두 a와 h로만 이루어져 있다. a의 개수는 0보다 크거 www.acmicpc.net 설명 재환이는 집에서 자신이 얼마나 길게 "aah"를 낼 수 있는지 알아냈고, 자기가 소리낼 수 있는 길이의 "aah"를 요구하는 의사를 방문하려고 한다. 입력은 두 줄로 이루어져 있다. 첫째 줄은 재환이가 가장 길게 낼 수 있는 "aaah"이다. 둘째 줄은 의사가 듣기를 원하는 "aah"이다. 재환이가 낼 수 있는 "aah"의 길이와 의사가 요구하는 길이가 주어진다. 이때, 그 병원에 가야하는지 말아야하는지를 알아내는 프로그램을 작성하시오. 두 문..

BOJ 9498번 : 시험 성적 (Python, Java, C/구현/Bronze 5)

9498번: 시험 성적 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. www.acmicpc.net 설명 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. Solution Python score = int(input()) if 100 >= score and score >= 90: print('A') elif 89 >= score and score >= 80: print('B') elif 79 >= score and score >= 70: print('C') elif 69..

BOJ 1000번 : A+B (Python, Java/구현/Bronze 5)

1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 설명 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. Solution Python a, b = map(int, input().split()) print(a+b) Java import java.util.Scanner; public class Main { public static void main(String[] args) { int a; int b; Scanner sc = new Scanner(System.in); a = sc.nextInt(); b = sc.nextInt(); System.out.println(a+b); } }

BOJ 2935번 : 소음 (Python/구현/Bronze 3)

2935번: 소음 수업 시간에 떠드는 두 학생이 있다. 두 학생은 수업에 집중하는 대신에 글로벌 경제 위기에 대해서 토론하고 있었다. 토론이 점점 과열되면서 두 학생은 목소리를 높였고, 결국 선생님은 크게 www.acmicpc.net 설명 학생들은 덧셈과 곱셈만 배웠다. 또, 아직 10의 제곱꼴을 제외한 다른 수는 학교에서 배우지 않았기 때문에, 선생님이 써주는 수는 모두 10의 제곱 형태이다. 숫자는 최대 100자리이다. 칠판에 쓰여 있는 문제가 주어졌을 때, 결과를 구하는 프로그램을 작성하시오. Solution a = int(input()) str = input() b = int(input()) if str == "*": print(a*b) else: print(a+b)

BOJ 5355번 : 화성 수학 (Python/구현/Bronze 2)

5355번: 화성 수학 겨울 방학에 달에 다녀온 상근이는 여름 방학 때는 화성에 갔다 올 예정이다. (3996번) 화성에서는 지구와는 조금 다른 연산자 @, %, #을 사용한다. @는 3을 곱하고, %는 5를 더하며, #는 7을 빼는 연산 www.acmicpc.net 설명 @는 3을 곱하고, %는 5를 더하며, #는 7을 빼는 연산자이다. 결과를 계산한 다음에, 소수점 둘째 자리까지 출력한다. 풀이 1. 문자열로 입력받기 2. 숫자만 실수형으로 변환하여 결과값에 넣기 3. 2번째 인덱스부터 문자열 길이까지 반복문을 통해 계산 '@'일 경우 결과값에 3을 곱한다. '%'일 경우 결과값에 5를 더한다. '#'일 경우 결과값에 7을 더한다. 4. %.2f 형식으로 소수점 출력 자릿수를 지정하고 결과값을 출력 ..

BOJ 11723번 : 집합 (Python/구현/Silver 5)

11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 설명 비어있는 공집합 S가 주어졌을 때, • add x: S에 x를 추가한다. (1 ≤ x ≤ 20) S에 x가 이미 있는 경우에는 연산을 무시한다. • remove x: S에서 x를 제거한다. (1 ≤ x ≤ 20) S에 x가 없는 경우에는 연산을 무시한다. • check x: S에 x가 있으면 1을, 없으면 0을 출력한다. (1 ≤ x ≤ 20) • toggle x: S에 x가 있으면 x를 제거하고, 없으면 x를 추가한다. (1 ≤ x ≤ 20) • all: S를 {1, 2, ..., 20} 으..

BOJ 3046번 : 삼각형과 R2 (Python/구현/Bronze 4)

3046번: R2 두 숫자 R1과 R2가 있을 때, 두 수의 평균 S는 (R1+R2)/2와 같다. 상근이는 정인이 생일 선물로 두 숫자 R1과 R2를 주려고 한다. 생일 파티에서 상근이는 정인이에게 이 두 숫자를 말해주고, 정인이는 www.acmicpc.net 설명 두 수의 평균 S는 (R1+R2)/2 이다. R2가 몇 인지 구하는 프로그램을 구현하라. 풀이 S = (R1+R2)/2를 변환하면 2S-R1 = R2 Solution r1, s = map(int, input().split()) print(2*s - r1)

BOJ 9655번 : 돌 게임 (Python/구현, DP/Silver 5)

9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 설명 돌 N개가 주어질 때, 두 사람(상근이와 창영)이 턴을 돌아가면서 돌을 가져간다. 돌을 1개 또는 3개 가져갈 수 있고, 마지막 돌을 가져가는 사람이 게임을 이기게 된다. (베스킨 라빈스 생각나네?) 게임은 상근이가 먼저 시작하며 두 사람이 완벽하게 게임을 한다고 가정하고, 이기는 사람을 출력한다. 풀이 1. 간단한 풀이 돌이 짝수일 경우 창영이가 무조건 이기는 게임이 되고, 홀수일 경우 상근이가 무조건 이기는 게임이 된다. 따라서 짝수일 때와 홀수일 때를 나누어 푼다. 2. 다이나믹 프로그래밍 알고리즘 적용 다른 풀이 참조(추후에 재풀이 후 설명 예정) Solution 1. ..