[BOJ/Gold 4] 백준 2224 명제 증명(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/2224 2224번: 명제 증명 첫째 줄에 출력할 명제의 개수 X개를 출력한다. 다음 X개의 줄에 증명될 수 있는 명제를 한 줄에 하나씩 출력한다. 명제를 출력할 때에는 전건 순으로 정렬하고, 전건이 같은 경우에는 후건 순으 www.acmicpc.net 문제 수학, 혹은 논리학에서 만약 무엇 이라면 뭣 일 것이다 하는 식의 명제가 널리 쓰인다. 예를 들어 "P이면 Q일 것이다." 라는 명제는 “P => Q” 라는 기호로 표현된다. 이때의 P를 전건, Q를 후건이라고 한다. 논리학에서 어떤 명제를 증명할 때 가장 널리 쓰이는 방법 중 한 가지가 바로 삼단 논법이다. 만약 두 명제 “P => Q", "Q => R" 가 모두 참이면, 명제 "..
[BOJ/Silver 1] 백준 15723 n단 논법(C++)
·
BOJ/Silver
문제 링크 https://www.acmicpc.net/problem/15723 15723번: n단 논법 m개의 줄에 걸쳐 각 줄에 결론이 참인지 거짓인지 출력하라. 참일 경우 T, 거짓일 경우 F를 출력하라. 알 수 없는 경우도 거짓이다. 답은 필히 대문자로 출력해야 한다. www.acmicpc.net 문제 모든 중앙대 컴퓨터공학부(소프트웨어학부) 학생들은 미인이다. 지무근은 중앙대 컴퓨터공학부 학생이다. 그러므로 지무근은 미인이다. 위 연역 논증은 대표적인 삼단논법의 예시이다. 삼단논법이란 전제 두 개와 결론 하나로 이루어진 연역 논증이다. 이것을 응용하면, n개의 전제가 있을 때 m개의 결론을 도출할 수 있을 것이다. 이때의 n과 m은 모든 의미에서 적절한 수라고 가정하자. 자세한 것은 입출력 예시를..
[BOJ/Gold 3] 백준 27498 연애 혁명(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/27498 27498번: 연애 혁명 신촌고등학교 학생회장 기령이는 최근 학생들의 복잡한 사랑관계로 인해 고민이 많다. 학생들이 공부에 집중하지 못해 전반적인 성적이 하락하고 있는 것이다. 이에 기령이는 학생들의 복잡한 www.acmicpc.net 문제 신촌고등학교 학생회장 기령이는 최근 학생들의 복잡한 사랑관계로 인해 고민이 많다. 학생들이 공부에 집중하지 못해 전반적인 성적이 하락하고 있는 것이다. 이에 기령이는 학생들의 복잡한 마음을 덜어주기 위해 일부의 사랑 관계를 강제로 포기하게 만드는 특단의 조치를 취하기로 했다. 단, 파장을 최소화 하기 위해 다음의 조건을 만족하도록 조치할 것이다. 사랑 관계 중, 이미 성사된 사랑 관계는 포..
[BOJ/Gold 5] 백준 27942 :danceplant:(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/27942 27942번: :danceplant: 첫째 줄에 가지가 몸을 늘이며 먹은 양분의 총량을 출력한다. 둘째 줄에 가지가 몸을 늘인 방향을 나타내는 문자를 늘인 순서대로 한 줄에 출력한다. 상하좌우는 각각 UDLR에 대응된다. www.acmicpc.net 문제 흥이 넘치는 우리의 가지는 상하좌우로 몸을 늘이며 춤추는 것을 좋아한다. 춤을 추면 에너지가 소모되기 마련, 가지는 춤을 출 때 에너지를 보충할 수 있도록 주변에 섭취할 양분을 미리 준비해둔다. 가지는 매 순간 최대한의 양분을 섭취하며 열정적으로 춤을 추고 싶어 한다. 자신이 보여줄 수 있는 최고의 춤을 추고 싶어 하는 가지를 위해 어떻게 몸을 늘여야 할지 알려주자. 처음 가..
[BOJ/Gold 3] 백준 25587 배수로(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/25587 문제 ChAOS 나라에는 총 N개의 도시가 있고 각각 1, 2, 3, …, N번 도시라고 부른다. ChAOS 나라에 각 도시에는 홍수를 막기 위해 배수로가 설치되어 있다. i번 도시의 배수로는 강수량이 Ai 이하일 때만 홍수를 막을 수 있다. 추가로 한 도시에만 폭우가 올 때를 대비해, 두 개의 도시를 정해서 양쪽 도시의 배수로 용량을 공유할 수 있는 공사를 하기로 했다. 예를 들어 1번 도시와 2번 도시에 공사를 하고 난 후, 1번 도시와 2번 도시의 강수량의 합이 A1 + A2이하라면 1, 2번 도시 모두에 홍수가 나는 것을 막을 수 있고, 그렇지 않다면 1, 2번 도시 모두에 홍수가 나게 된다. 그 후 2, 3번 도시에도..
[BOJ/Gold 4] 백준 25187 고인물이 싫어요(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/25187 문제 재형이는 청정수를 좋아하고 고인물을 싫어한다. 오늘도 청정수를 구하기 위해 물탱크들이 있는 마을에 방문한다. 마을에는 N개의 물탱크가 존재하고, 각 물탱크는 청정수 또는 고인물을 저장하고 있다. 그리고 물탱크는 공급의 편의를 위해 M개의 파이프로 서로 연결되어 있다. 청정수를 얻기 위해 K번 물탱크에 방문했을 때, K번 물탱크와 K번 물탱크에서 0개 이상의 파이프를 거쳐 이동 가능한 물탱크 중, 청정수가 담긴 물탱크의 수가 고인물이 담긴 물탱크의 수보다 더 많은 경우 청정수를 얻을 수 있다. 방문할 예정인 물탱크에 대한 정보가 주어질 때마다, 청정수를 얻을 수 있는지 구해보자. 입력 첫째 줄에 물탱크의 수 N(1 ≤ N ..
[Programmers/Level 4] SELECT(MySQL)
·
Programmers/Level 4
Level 4 서울에 위치한 식당 목록 출력하기 식당의 아이디를 기준으로 Join하고 주소가 서울로 시작하는 식당들만을 아이디를 기준으로 그룹화한다. 리뷰 평균점수는 AVG로 구하고, ROUND로 소수점 셋째 자리에서 반올림한다. SELECT A.REST_ID, A.REST_NAME, A.FOOD_TYPE, A.FAVORITES AS FAVORITES, A.ADDRESS, ROUND(AVG(B.REVIEW_SCORE), 2) AS SCORE FROM REST_INFO A INNER JOIN REST_REVIEW B ON A.REST_ID = B.REST_ID GROUP BY A.REST_ID HAVING A.ADDRESS LIKE '서울%' ORDER BY SCORE DESC, A.FAVORITES DE..
[BOJ/Gold 2] 백준 7432 디스크 트리(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/7432 7432번: 디스크 트리 갑자기 맥북이 상근이의 손에서 떨어졌고, 화면이 켜지지 않았다. AS센터에 문의해보니 수리비가 97만원이 나왔고, 상근이는 큰 혼란에 빠졌다. 돈도 중요하지만, 상근이는 그 속에 들어있는 파 www.acmicpc.net 문제 갑자기 맥북이 상근이의 손에서 떨어졌고, 화면이 켜지지 않았다. AS센터에 문의해보니 수리비가 97만원이 나왔고, 상근이는 큰 혼란에 빠졌다. 돈도 중요하지만, 상근이는 그 속에 들어있는 파일이 걱정되기 시작했다. 다행히 상근이는 저장되어 있는 중요한 디렉토리의 전체 경로를 텍스트 파일로 따로 저장하고 있었다. 예를 들면, WINNT\SYSTEM32\CERTSRV\CERTCO~1\X..
[Programmers/Level 4] JOIN(MySQL)
·
Programmers/Level 4
Level 4 주문량이 많은 아이스크림들 조회하기 중복된 맛을 가진 아이스크림 주문 정보는 JULY 테이블에만 있으므로 JULY 테이블의 맛을 기준으로 FIRST_HALF 테이블의 데이터를 가져온다. 그리고 FLAVOR를 기준으로 그룹화한 후 총 주문량을 더한 다음 내림차순으로 정렬하고 LIMIT를 활용해 세 번째 데이터까지 출력한다. SELECT B.FLAVOR FROM JULY B INNER JOIN FIRST_HALF A ON A.FLAVOR = B.FLAVOR GROUP BY B.FLAVOR ORDER BY SUM(A.TOTAL_ORDER + B.TOTAL_ORDER) DESC LIMIT 3 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 먼저 3개의 테이블을 Join한다. 그리고 CAR_T..
[BOJ/Gold 3] 백준 14725 개미굴(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/14725 14725번: 개미굴 첫 번째 줄은 로봇 개미가 각 층을 따라 내려오면서 알게 된 먹이의 정보 개수 N개가 주어진다. (1 ≤ N ≤ 1000) 두 번째 줄부터 N+1 번째 줄까지, 각 줄의 시작은 로봇 개미 한마리가 보내준 먹이 www.acmicpc.net 문제 개미는(뚠뚠) 오늘도(뚠뚠) 열심히(뚠뚠) 일을 하네. 개미는 아무말도 하지 않지만 땀을 뻘뻘 흘리면서 매일 매일을 살길 위해서 열심히 일을 하네. 한 치 앞도(뚠뚠) 모르는(뚠뚠) 험한 이 세상(뚠뚠) 그렇지만(뚠뚠) 오늘도 행복한 개미들! 우리의 천재 공학자 윤수는 이 개미들이 왜 행복한지 궁금해졌다. 행복의 비결이 개미가 사는 개미굴에 있다고 생각한 윤수는 개미..
[Programmers/Level 3] JOIN(MySQL)
·
Programmers/Level 3
Level 3 없어진 기록 찾기 OUTER JOIN을 사용하여 동물의 아이디를 기준으로 ANIMAL_OUTS 테이블에 ANIMAL_INS의 데이터를 가져온다. 그런데 ANIMAL_INS의 DATETIME이 존재하지 않는다면, 입양 기록은 있는데 보호소에 데려온 기록이 없다는 뜻이므로 해당하는 데이터의 동물 아이디와 이름을 아이디를 오름차순 정렬하여 리스트로 출력한다. SELECT B.ANIMAL_ID, B.NAME FROM ANIMAL_INS A RIGHT OUTER JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID WHERE A.DATETIME IS NULL ORDER BY B.ANIMAL_ID 있었는데요 없었습니다 SELECT A.ANIMAL_ID, B.NAME F..
[Programmers/Level 2] JOIN(MySQL)
·
Programmers/Level 1~2
Level 2 조건에 맞는 도서와 저자 리스트 출력하기 BOOK 테이블과 AUTHOR 테이블을 저자의 아이디를 기준으로 묶는다. SELECT A.BOOK_ID, B.AUTHOR_NAME, DATE_FORMAT(A.PUBLISHED_DATE, '%Y-%m-%d') AS 'PUBLISHED_DATE' FROM BOOK A INNER JOIN AUTHOR B ON A.AUTHOR_ID = B.AUTHOR_ID WHERE A.CATEGORY = '경제' ORDER BY A.PUBLISHED_DATE ASC 상품 별 오프라인 매출 구하기 PRODUCT 테이블과 OFFLINE_SALE 테이블을 상품 아이디를 기준으로 묶는다. 그리고 상품 코드로 상품들을 구분하고 상품 코드별 판매량의 총합과 상품의 가격을 곱한 값을..
[BOJ/Gold 2] 백준 16934 게임 닉네임(C++)
·
BOJ/Gold
문제 링크 https://www.acmicpc.net/problem/16934 16934번: 게임 닉네임 첫째 줄에 가입한 유저의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 유저의 닉네임이 가입한 순서대로 한 줄에 하나씩 주어진다. 닉네임은 알파벳 소문자로만 이루어져 있고, www.acmicpc.net 문제 스타트링크에서 매우 재미있는 게임을 만들었다. 이 게임은 정말 재미있다. 게임에는 유저가 접속하는 기능이 있고, 각 유저는 가입할 때, 자신의 닉네임을 정해야 한다. 닉네임은 알파벳 소문자로만 이루어져 있고, 두 유저가 같은 닉네임을 정하는 것도 가능하다. 이 게임은 유저의 닉네임을 이용해서 내부에 저장할 별칭을 만든다. 별칭은 유저에게 보여지지는 않고, 내부에서만 ..
[Programmers/Level 2] GROUP BY(MySQL)
·
Programmers/Level 1~2
Level 2 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 GROUP BY로 자동차를 종류별로 구분한다. 옵션이 쉼표로 구분되어 있는 문자열이기 때문에 '%옵션 정보%'를 통하여 통풍시트, 열선시트, 가죽시트를 옵션으로 포함하는 자동차만 따진다. SELECT A.CAR_TYPE, COUNT(A.CAR_TYPE) AS CARS FROM CAR_RENTAL_COMPANY_CAR A WHERE (A.OPTIONS LIKE '%통풍시트%') OR (A.OPTIONS LIKE '%열선시트%') OR (A.OPTIONS LIKE '%가죽시트%') GROUP BY A.CAR_TYPE ORDER BY A.CAR_TYPE ASC 진료과별 총 예약 횟수 출력하기 진료과 코드별로 예약 건수를 구분한다. 예약 날짜에..
[Programmers/Level 1~2] SUM, MAX, MIN(MySQL)
·
Programmers/Level 1~2
Level 1 가장 비싼 상품 구하기 SELECT MAX(A.PRICE) AS MAX_PRICE FROM PRODUCT A 최댓값 구하기 SELECT MAX(A.DATETIME) AS DATETIME FROM ANIMAL_INS A Level 2 가격이 제일 비싼 상품의 정보 출력하기 SELECT A.PRODUCT_ID, A.PRODUCT_NAME, A.PRODUCT_CD, A.CATEGORY, A.PRICE FROM FOOD_PRODUCT A ORDER BY A.PRICE DESC LIMIT 1 최솟값 구하기 SELECT MIN(A.DATETIME) AS DATETIME FROM ANIMAL_INS A 동물 수 구하기 SELECT COUNT(*) FROM ANIMAL_INS 중복 제거하기 이름의 중복을..