본문 바로가기

Problem Solving/SWEA147

[SWEA] 6718. 희성이의 원근법 문제 어느날 희성이는 멀리 있는 물체는 보기가 힘들다는 생각을 했다. 그렇기에 다음과 같은 방식으로 물체가 얼마나 떨어져 있는지에 따라 다음처럼 수치를 매기기로 했다. 1. 0.1km 미만 : 0으로 매긴다. 2. 0.1km 이상 1km 미만 : 1으로 매긴다. 3. 1km 이상 10km 미만 : 2로 매긴다. 4. 10km 이상 100km 미만 : 3으로 매긴다. 5. 100km 이상 1000km 미만 : 4로 매긴다. 6. 1000km 이상 : 5로 매긴다. 어떤 물체와의 거리가 주어질 때, 위의 방식으로 수치를 매기는 프로그램을 작성하라. 풀이방법 조건문으로 각 조건에 맞는 값을 넣어줌 소스코드 package samsung; import java.util.*; public class s_6718 {.. 2020. 2. 27.
[SWEA] 8338. 계산기 문제 다은이는 방탈출 카페에서 마지막 문제를 풀고있다. 마지막 문제는 다음과 같다 N개의 수 a1,a2, ⋯, aN이 있다. 이수들은 차례대로 계산기에 입력 해야만 하는데, 수를 입력하는 중간 중간에 연산자를 반드시 하나 입력을해야만 한다. 연산자에는 더하기 혹은 곱하기만 입력할 수 있다. 정확히 말해서, a1, (+ or x),a2, (+ or x), ⋯, (+ or x), aN를 계산기에 입력하는 것이다. 수식을 계산할 때 연산자의 우선 순위는 고려하지 않고 왼쪽에서 오른쪽으로 차례대로 계산한다. 계산기에 계산된 결과로 나올 수 있는 값 중 최대값을 구하여 방 탈출에 성공하자. 풀이방법 동적 계획법(DP, Dynamic Programming) 알고리즘으로 간단히 풀 수 있는 문제이다. n * 2 크기.. 2020. 2. 27.
[SWEA] 4522. 세상의 모든 팰린드롬 문제 어떤 단어가 뒤에서 앞으로 거꾸로 썼을 때 원래의 단어와 같으면 이를 팰린드롬이라고 한다. 예를 들어 “madam”은 뒤에서 앞으로 읽어도 “madam”이기 때문에 팰린드롬이다. 그러나 “dog”는 뒤에서 앞으로 읽으면 “god”이기 때문에 팰린드롬이 아니다. “doggod”은 뒤에서 앞으로 읽으면 “doggod”이므로 팰린드롬이다. 25XX년 경근이는 알파벳 소문자로 만든 단어들 중에서 팰린드롬인 것들을 모두 모아(그 단어에 뜻이 있건 없건) 데이터베이스에 넣었다. 요즘은 저장 장치가 발달해서 매우 많은 팰린드롬을 저장할 수 있기 때문에 모든 팰린드롬을 저장하지는 못할 것이라는 걱정은 하지 않아도 좋다. 경근이는 이 데이터베이스에서 특정한 패턴에 매치되는 팰린드롬을 찾으려고 한다. 경근이는 알파벳.. 2020. 2. 27.
[SWEA] 3975. 승률 비교하기 문제 첫 번째 줄에 테스트 케이스의 수 T가 주어진다. 각 테스트 케이스의 첫 번째 줄에는 네 자연수 A, B, C, D(1 ≤ A ≤ B ≤ 100, 1 ≤ C ≤ D ≤ 100)이 공백로 구분되어 주어진다. 풀이방법 A, B, C, D가 입력되었을 때, A / B 가 C / D보다 크면 "ALICE" 출력 작으면 "BOB" 출력 같으면 "DRAW" 출력 소스코드 package samsung; import java.util.*; public class s_3975 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int tc = sc.nextInt(); for(int t = 1; t c / d) { System.. 2020. 2. 27.
[SWEA] 7675. 통역사 성경이 문제 성경이는 대통령 직속 통역관이다. 대통령은 사람 이름을 외우는 것을 굉장히 중요시 한다. 따라서 외국 대사와의 대화에서 나오는 모든 이름을 외워달라고 성경이에게 부탁했다. 외국 대사는 총 N개의 문장을 말했다. 각 문장의 마지막 단어는 세 가지 구두점 ‘.’, ‘?’, ‘!’ 중 하나를 마지막에 포함한다. 문장은 대소문자 알파벳와 숫자로 이루어진 단어들이 공백을 사이에 두고 구성되어 있으며, 예외적으로 마지막 단어는 구두점으로 끝나게 된다. 이름은 대문자 알파벳으로 시작하며 나머지는 소문자 알파벳인 단어들이다. 예외적으로, 단어의 마지막이 구두점일 경우에도 이름이며, 대문자 한글자도 이름이다. 성경이는 대통령을 위해서 외국 대사와의 대화를 문서로 받아서 이름이 몇 번 나오는 지를 알려줘야 한다. N.. 2020. 2. 27.
[SWEA] 1860. 진기의 최고급 붕어빵 문제 진기는 붕어빵 가게를 운영하고 있다. 진기가 파는 붕어빵은 그냥 붕어빵이 아니라 겉은 바삭! 속은 말랑! 한입 물면 팥 앙금이 주르륵 흘러 입안에서 춤을 추며, 절로 어릴 적 호호 불며 먹었던 뜨거운 붕어빵의 추억이 떠올라 눈물이 나오게 되는 최고급 붕어빵이다. 진기는 이런 붕어빵을 보통 사람들에게는 팔지 않는다. 그는 무조건 예약제로만 손님을 받으며, 예약을 하려는 손님들은 진기의 까다로운 자격 검증에서 합격해야만 붕어빵을 맛 볼 자격을 얻는다. 그래서 오늘은 N명의 사람이 자격을 얻었다. 진기는 0초부터 붕어빵을 만들기 시작하며, M초의 시간을 들이면 K개의 붕어빵을 만들 수 있다. 서빙은 진기가 하는 것이 아니기 때문에, 붕어빵이 완성되면 어떤 시간 지연도 없이 다음 붕어빵 만들기를 시작할 수.. 2020. 2. 26.
[SWEA] 8457. 알 덴테 스파게티 문제 선표는 가게에서 처음으로 스파게티 면을 샀다. 봉투에 적힌 정보에 따르면, 면을 정확히 B초 동안 삶아야 이상적인 상태의 면이 된다고 한다. 그러나 안타깝게도, 지금 선표집의 모든 시계는 고장이 났다. 그래서 가게에서 모래시계를 하나 사서 집으로 가려고 한다. 가게에는 N개의 모래시계가 있고, i번째 모래시계는 정확히 xi초를 측정할 수 있다. 모래가 다 내려오면 바로 모래시계를 뒤집는 것으로 2xi초, 3xi초, …도 측정할 수 있다. 그러나 나머지 시간은 측정할 수 없다. 선표는 모래시계로는 정확한 시간을 측정할 수 없을 것 같아서, 조금 타협하여 E초 정도의 오차를 허용하려고 한다. 그러므로, 어떤 하나의 모래시계를 구입하여 B – E초에서 B + E초 중 하나를 측정해낼 수 있으면 된다. 구.. 2020. 2. 26.
[SWEA] 5986. 새샘이와 세 소수 문제 정수론에서, 세 소수 문제란 다음과 같다. “5보다 큰 모든 홀수는 정확히 세 소수의 합으로 표현될 수 있다. (같은 소수를 합에 사용해도 된다.)” 예를 들어, 7 = 2 + 2 + 3, 11 = 2 + 2 + 7, 25 = 7 + 7 + 11로 나타낼 수 있다. 1939년 러시아 수학자 I. M. Vinogradov는 충분히 큰 홀수는 세 소수의 합으로 표현할 수 있다는 것을 증명했다. 여기서 충분히 크다는 것은 3315 ≈ 107000000 이상의 수라는 의미이다. 현재 가장 발전된 하한은 약 e3100 ≈ 101346 이상의 수이다. 러시아 수학자 I. M. Vinogradov 를 존경하는 새샘이는 직접 세 소수 문제를 풀어보기로 했다. 하지만 이 수는 너무 크기 때문에 컴퓨터로도 이 범위까.. 2020. 2. 26.
[SWEA] 7272. 안경이 없어! 문제 어느 날 경근이는 알파벳 대문자로 이루어진 두 문자열을 비교해야 했는데, 이 날은 공교롭게도 안경이 없었다. 경근이는 매우 눈이 나빠서 안경을 벗으면 문자열을 문자 단위로 구별할 수는 있지만, 두 문자가 정확히 같은 지는 알지 못한다. 특히 알파벳 대문자 같은 경우 문자에 나 있는 구멍의 개수가 같으면 같은 문자이고, 다르면 다른 문자라고 생각한다. 예를 들어 구멍이 하나도 없는 CEFGHIJKLMNSTUVWXYZ들을 같은 문자로 생각하고, 구멍이 한 개 나 있는 ADOPQR들을 같은 문자로 생각하며, 구멍이 두 개 나 있는 유일한 문자 B는 유일하게 정확히 알 수 있다. 알파벳 대문자로 이루어진 두 문자열이 주어졌을 때, 경근이는 두 문자열이 같다고 판별하는지 다르다고 판별할 것인가? 풀이방법 {.. 2020. 2. 26.
[SWEA] 5215. 햄버거 다이어트 문제 평소 햄버거를 좋아하던 민기는 최근 부쩍 늘어난 살 때문에 걱정이 많다. 그렇다고 햄버거를 포기할 수 없었던 민기는 햄버거의 맛은 최대한 유지하면서 정해진 칼로리를 넘지 않는 햄버거를 주문하여 먹으려고 한다. 민기가 주로 이용하는 햄버거 가게에서는 고객이 원하는 조합으로 햄버거를 만들어서 준다. 하지만 재료는 미리 만들어서 준비해놓기 때문에 조합에 들어가는 재료를 잘라서 조합해주지는 않고, 재료를 선택하면 준비해놓은 재료를 그대로 사용하여 조합해준다. 민기는 이 가게에서 자신이 먹었던 햄버거의 재료에 대한 맛을 자신의 오랜 경험을 통해 점수를 매겨놓았다. 민기의 햄버거 재료에 대한 점수와 가게에서 제공하는 재료에 대한 칼로리가 주어졌을 때, 민기가 좋아하는 햄버거를 먹으면서도 다이어트에 성공할 수 .. 2020. 2. 25.
[SWEA] 9317. 석찬이의 받아쓰기 문제 ​​​​​​​아기 석찬이는 내년에 초등학교에 입학하지만 아직 알파벳을 떼지 못했다. 석찬이의 부모님은 그런 석찬이를 위해 알파벳을 공부할 수 있는 학습지를 구독하였다. 학습지에는 길이 N의 알파벳 대소문자로만 이루어진 문자열이 주어지는데, 석찬이는 대소문자를 제대로 구분해서 이 문자열을 받아 적어야 한다. 석찬이는 N 개의 문자를 받아 적는 데는 성공했지만, 틀리게 적은 문자들이 몇 개 보인다. 석찬이가 몇 개의 문자를 올바르게 받아 적었는지 세어보자. 풀이방법 두 개의 입력받은 문자열의 문자를 각각 하나씩 뽑아 비교하며 두 문자가 동일한 개수를 카운트한다. 소스코드 package samsung; import java.util.*; public class s_9317 { public static v.. 2020. 2. 25.
[SWEA] 9280. 진용이네 주차타워 문제 부지런한 진용이는 정문 앞에서 유료 주차장 운영하고 있다. 이 주차장은 1 부터 n 까지 번호가 매겨진 n 개의 주차 공간을 가지고 있다. 매일 아침 모든 주차 공간이 비어 있는 상태에서 영업을 시작하며, 다음과 같은 방식으로 운영된다. 차가 주차장에 도착하면, 진용이는 비어있는 주차 공간이 있는지 검사한다. 비어있는 공간이 없다면, 빈 공간이 생길 때까지 차량을 입구에서 기다리게 한다. 빈 주차 공간이 있으면 진용이는 곧바로 주차를 시키며, 주차 가능한 공간 중 번호가 가장 작은 주차 공간에 주차하도록 한다. 만약 주차를 기다리는 차량이 여러 대라면, 입구의 대기장소에서 자기 차례를 기다려야 한다. 운전자들은 예의가 바르기 때문에 새치기를 하지 않는다. 주차요금은 차량의 무게와 주차 공간마다 따로.. 2020. 2. 25.