[BOJ] 9375번: 패션왕 신해빈
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 1. 문제 설명 혜빈이는 한번 입었던 옷들의 조합은 절대 다시 입지 않는다. 옷을 입을 때 주어진 옷의 종류를 모두 입지 않아도 된다. (안경, 반팔, 반바지가 주어지면 안경과 반팔만 입는 경우, 반팔과 반바지만 입는 경우도 존재한다.) 알몸인 상태만 되지 않으면 된다. 2. 접근 방식 조합으로 ..
[BOJ] 14500번: 테트로미노
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 1. 문제 설명 다음 조건을 만족하고, 테트로미노 하나를 적절히 놓아서 놓인 칸에 쓰여 있는 수들의 합이 최대가 하는 값을 구한다. 테트로미노는 반드시 한 정사각형이 정확히 하나의 칸에 포함해야 하며, 회전이나 대칭이 가능하다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 2..
[BOJ] 12813번: 이진수 연산
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/12813 12813번: 이진수 연산 총 100,000 비트로 이루어진 이진수 A와 B가 주어진다. 이때, A & B, A | B, A ^ B, ~A, ~B를 한 값을 출력하는 프로그램을 작성하시오. www.acmicpc.net 1. 문제 설명 총 100,000 비트로 이루어진 이진수 A와 B가 주어진다. 이때, A & B, A | B, A ^ B, ~A, ~B를 한 값을 출력하는 프로그램을 작성하시오. 2. 접근 방식 파이썬에서 ~연산자는 비트 반전 후 ㅎ2의 보수로 만들어서 리턴한다고 한다. 당연히 ~A, ~B를 하면 될 줄 알았는데 아니였다.. 1의 보수를 만들어 주려면 1. A ^ mask(A의 자릿수만큼 1로 채운 것) 2. ma..
[BOJ] 13458번: 시험 감독
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 1. 문제 설명 총 N개의 시험장이 있고, 각각의 시험장마다 응시자들이 있다. i번 시험장에 있는 응시자의 수는 Ai명이다. 감독관은 총감독관과 부감독관으로 두 종류가 있다. 총감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 B명이고, 부감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 C명이다. 각각의 시험장에 총감독관은..
[BOJ] 11723번: 집합
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 1. 문제 설명 비어있는 공집합 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가 ..
[BOJ] 25327번: 다중 항목 선호도 조사(Large)
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/25327 25327번: 다중 항목 선호도 조사 (Large) n명의 학생에게 다음과 같이 선호도를 조사하였다. 각 학생은 아래 세 가지 조사 항목 각각에 대하여 반드시 1가지를 선택해야 한다. 좋아하는 과목(subject)에 'kor', 'eng', 'math' 중 하나를 선택 좋아 www.acmicpc.net 1. 문제 설명 n(n명의 학생)이 주어진다. 각 학생은 세 가지 항목 각각에 대해 반드시 1가지를 선택한다. n명 학생의 선호도에 대하여 m개의 질의를 순서대로 처리한다. 질의 형식은 'subject fruit color'이다. subject은 'kor', 'eng', 'math', '-' 중 하나이다. fruit은 'apple..
[BOJ] 17466번: N! mod P(1)
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/17466 17466번: N! mod P (1) 양의 정수 N과, N보다 큰 소수 P가 주어질 때, N!을 P로 나눈 나머지를 구하여라. www.acmicpc.net 1. 문제 설명 양의 정수 N과, N보다 큰 소수 P가 주어질 때, N!을 P로 나눈 나머지를 구하여라. 2. 접근 방식 모듈러 연산 특징을 활용하여 풀었다. A+B%C = ((A%C) + (B%C)) % C A-B%C = ((A%C) - (B%C)) % C A*B%C = ((A%C) * (B%C)) % C 언제 공부했더라.. 무튼 기억이 났다 ㅎ...... 3. 주석 달기 (변수 설명, 각 줄마다 문장으로 설명, 함수 설명) import sys input = sys.stdi..
[boj] 14501번: 퇴사
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 1. 문제 설명 백준이는 퇴사를 하려고 한다. 오늘부터 N+1일째 되는 날 퇴사를 하기 위해서 남은 N일 동안 최대한 많은 상담을 하려고 한다. 최대 수익을 구하라. 2. 접근 방식 dp로 접근했다. dp = new int[n+1]로 초기화해서 N+1일째 되는 날까지 값을 갱신해준다. 각 0일부터 N일까지 반복하면서 '현재 요일까지 벌어들인 수익 + 현재 상담을 시작해서 끝나는 날에 받는 수익' 과 '끝나는 날에 벌어들인 수익'을 비교한다. for(int i = 0; i < n; i++) for(int j = i + arr[..
AtCoder Beginner Contest 289 정리
·
Problem Solving
출처 : https://atcoder.jp/contests/abc289 Sky Inc, Programming Contest 2023(AtCoder Beginner Contest 289) - AtCoder AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp A - flip 가볍게 넘어간다. import sys input = sys.stdin.readline n = input().rstrip() s = "" for i in n: if i == '1': s += '0' else: s += '1' print(s) B - V 이 문제..
[boj] 13975번: 파일 합치기 3
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/13975 13975번: 파일 합치기 3 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T개의 테스트 데이터로 이루어져 있는데, T는 입력의 맨 첫 줄에 주어진다.각 테스트 데이터는 두 개의 행으로 주어지는데, www.acmicpc.net 1. 문제 설명 소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본이 들어있는 한 개의 파일을 만든다. 이 과정에서 두 개의 파일을 합쳐서 하나의 임시파일을 만들고, 이 임시파일이나 원래의 파일을 계속 두 개씩 합쳐서 파일을 합쳐나가고, 최..
[boj] 1715번: 카드 정렬하기
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 1. 문제 설명 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다. 매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르..
[boj] 1541번: 잃어버린 괄호
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 1. 문제 설명 괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 문제다. 2. 접근 방식 여러 시도를 했었다... 구현 실력이 부족하여 실패했다....... 3. 주석 달기 (변수 설명, 각 줄마다 문장으로 설명, 함수 설명) package BOJ; import java.io.BufferedReader; import java.io.IOException; import java.io.I..