Study/SW Expert 11

[Java] SW4012: 요리사

시간 : 50개 테스트케이스를 합쳐서 C의 경우 5초 / C++의 경우 5초 / Java의 경우 5초 / Python의 경우 10초 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내 ※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. 두 명의 손님에게 음식을 제공하려고 한다. 두 명의 손님은 식성이 비슷하기 때문에, 최대한 비슷한 맛의 음식을 만들어 내야 한다. N개의 식재료가 있다. 식재료들을 각각 N / 2개씩 나누어 두 개의 요리를 하려고 한다. (N은 짝수이다.) 이때, 각각의 음식을 A음식, B음식이라고 하자. 비슷한 맛의 음식을 만들기 위해서는 A음식과 B음식의 맛의 차이가 최소가 되도록 재료를 배분해야 한다. 음식의 맛은 음식을 구성하는 식재료..

Study/SW Expert 2022.02.16

[Java] JUNGOL1828: 냉장고

1828 : 냉장고 제한시간1000 ms 메모리제한32 MB 문제 N개의 화학 물질 C1, C2, …, Cn이 있다. 이들 각각은 보관되어야 할 온도가 각기 다른데, 각 Ci마다 최저 보관 온도 xi와 최고 보관 온도 yi가 정해져 있다. 즉 Ci는 온도 xi이상, yi이하의 온도에서 보관되어야만 안전하다. 이 화학 물질들을 모두 보관하기 위해서는 여러 대의 냉장고가 필요한데 가능하면 적은 수의 냉장고를 사용하고 싶다. 이를 해결하는 프로그램을 작성하시오. 입력형식 첫줄에 화학물질의 수 N이 입력된다. N의 범위는 1이상 100 이하이다. 두 번째 줄부터 N+1줄까지 최저보관온도와 최고보관온도가 입력된다. 보관온도는 -270° ~ 10000°이며, 각 냉장고는 임의의 정해진 온도를 일정하게 유지할 수 있..

Study/SW Expert 2022.02.16

[Java] Baekjoon2961: 도영이가 만든 맛있는 음식

도영이가 만든 맛있는 음식 1 초 128 MB 5769 2731 2024 46.443% 문제 도영이는 짜파구리 요리사로 명성을 날렸었다. 이번에는 이전에 없었던 새로운 요리에 도전을 해보려고 한다. 지금 도영이의 앞에는 재료가 N개 있다. 도영이는 각 재료의 신맛 S와 쓴맛 B를 알고 있다. 여러 재료를 이용해서 요리할 때, 그 음식의 신맛은 사용한 재료의 신맛의 곱이고, 쓴맛은 합이다. 시거나 쓴 음식을 좋아하는 사람은 많지 않다. 도영이는 재료를 적절히 섞어서 요리의 신맛과 쓴맛의 차이를 작게 만들려고 한다. 또, 물을 요리라고 할 수는 없기 때문에, 재료는 적어도 하나 사용해야 한다. 재료의 신맛과 쓴맛이 주어졌을 때, 신맛과 쓴맛의 차이가 가장 작은 요리를 만드는 프로그램을 작성하시오. 입력 첫째..

Study/SW Expert 2022.02.14

[Java] SW6808: 규영이와 인영이의 카드게임

시간 : 100개 테스트케이스를 합쳐서 C의 경우 3초 / C++의 경우 3초 / Java의 경우 6초 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내 ※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. 규영이와 인영이는 1에서 18까지의 수가 적힌 18장의 카드로 게임을 하고 있다. 한 번의 게임에 둘은 카드를 잘 섞어 9장씩 카드를 나눈다. 그리고 아홉 라운드에 걸쳐 게임을 진행한다. 한 라운드에는 한 장씩 카드를 낸 다음 두 사람이 낸 카드에 적힌 수를 비교해서 점수를 계산한다. 높은 수가 적힌 카드를 낸 사람은 두 카드에 적힌 수의 합만큼 점수를 얻고, 낮은 수가 적힌 카드를 낸 사람은 아무런 점수도 얻을 수 없다. 이렇게 아홉 라운드를 끝내고 총..

Study/SW Expert 2022.02.14

[Python] SW Expert 1258. 7일차 - 행렬찾기

시간 : 10개 테스트케이스를 합쳐서 C++의 경우 10초 / Java의 경우 10초 / Python의 경우 20초 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내 ※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. 링크: https://swexpertacademy.com/main/solvingProblem/solvingProblem.do 유엔 화학 무기 조사단이 대량 살상 화학 무기를 만들기 위해 화학 물질들이 저장된 창고를 조사하게 되었다. 창고에는 화학 물질 용기 n2개가 n x n으로 배열되어 있었다. 유엔 조사단은 각 용기를 조사하여 2차원 배열에 그 정보를 저장하였다. 빈 용기에 해당하는 원소는 ‘0’으로 저장하고, 화학 물질이 들어 있는 용기..

Study/SW Expert 2022.02.02

[Python] SW Expert 1208. 1일차 - Flatten

시간 : 10개 테스트케이스를 합쳐서 C++의 경우 10초 / Java의 경우 20초 / Python의 경우 30초 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내 풀이 가장 높은 높이의 블럭을 빼서 가장 낮은 높이의 블럭에 넣어주는 평탄화 작업입니다. 높이를 인덱스로 표현하면 빠르게 풀 수 있는 문제입니다. for i in range(10): # 10번의 테스트 케이스 low = high = 0 dump = int(input()) # 덤프 수 height = [0 for i in range(101)] # 높이는 0부터 100까지 = 인덱스화 lst = list(map(int,input().split())) for j in lst: height[j] += 1 # 입력 받은 ..

Study/SW Expert 2022.02.01

[Python] SW Expert 2063. 중간값 찾기

[문제] 중간값은 통계 집단의 수치를 크기 순으로 배열 했을 때 전체의 중앙에 위치하는 수치를 뜻한다. 입력으로 N 개의 점수가 주어졌을 때, 중간값을 출력하라. [예제] N이 9 이고, 9개의 점수가 아래와 같이 주어질 경우, 85 72 38 80 69 65 68 96 22 69이 중간값이 된다. [제약 사항] 1. N은 항상 홀수로 주어진다. 2. N은 9이상 199 이하의 정수이다. (9 ≤ N ≤ 199) [입력] 입력은 첫 줄에 N 이 주어진다. 둘째 줄에 N 개의 점수가 주어진다. [출력] N 개의 점수들 중, 중간값에 해당하는 점수를 정답으로 출력한다. [풀이] num = int(input()) score = input().split() score.sort() print(score[int(n..

Study/SW Expert 2022.01.18

Markdown 문법

마크다운 문법 알아보기 0. 강조 ``` 1. Heding # 제목1 ## 제목2 ### 제목3 #### 제목4 ##### 제목5 ###### 제목6 제목1 제목2 제목3 제목4 제목5 제목6 2.목록 순서가 없는 목록과 순서가 있는 목록을 표현할 수 있음 순서가 없는 목록은 - * + 를 사용 순서가 있는 목록은 1. 2. 3. (숫자. 형태)로 나타내면된다 tab 키를 눌러 들여쓰기 가능 shift + tab 키를 눌러 내어쓰기 가능 예시 - 순서가 없는 목록 * 서브 목록 + 서브 목록 1. 순서가 있는 목록 1. 서브 목록 2. 서브 목록 - 순서가 없는 목록 1. 순서 있는 서브 2. 순서 있는 서브 2. 순서가 있는 목록 - 순서 없는 서브 * 순서 없는 서브 순서가 없는 목록 서브 목록 서브..

Study/SW Expert 2022.01.13

터미널 명령어(CLI)

CLI**(Command Line Interface) $ cd .. >이전 디렉토리로 이동: change directory $ cd ~ >Home 디렉토리로 이동 $ cd / > 루트 디렉토리로 이동 ex) Window C드라이브 $ ~/abcd > home 디렉토리의 abcd 폴더로 이동 경로 절대 경로: 어떤 위치에서도 접근할 수 있는 경로(모든 경로 직접 작성) /Users/abcd/abcdef 상대 경로: 현재 위치를 기준으로 계산된 상대적 경로 $ ./ > .은 현재 위치를 의미함 $ ../ > ..은 상위 폴더로 이동 경로 확인 $ pwd 터미널 명령어 파일 생성 명령어 $ touch 파일명 폴더 생성 명령어 $ mkdir 폴더명 현대 위치에서 폴더/파일 보기 $ ls //폴더 탐색: list..

Study/SW Expert 2022.01.13

수와 표현

비트 0과 1을 표현할 수 있다. k 개의 비트를 사용하면 2^k개의 숫자를 표현할 수 있으며 0부터 표현한다고 했을 때 2k^-1까지 표현 가능하다. 문제 어떤 수 n을 표현하기 위해 최소 몇 개의 비트(k)를 사용해야하는가? 2^k-1>=n 또는 2^k>=n+1 를 만족해야하므로 k로 나타내면 다음과 같다. k>=log2(n+1)≒log2(n) 문제 풀이 Q1) 2진수 표현에서 logN 비트로 표현할 수 있는 숫자 범위는? logN=k라고할 때 2^k-1까지 표현할 수 있다. 2^logN-1이므로 N-1까지의 수를 표현할 수 있다. Q2) 스무고개가 이상적으로 진행된다고 할 때, 맞출 수 있는 답의 종류는 몇 가지인가? 한 질문 당 2개의 답의 종류를 말할 수 있다. 맞출 수 있는 답의 종류는 2^2..

Study/SW Expert 2021.12.28