본문 바로가기

숨막히는 알고말고

(211)
[SWEA] 스도쿠 검증 👀 문제 설명 문제 로그인해야 문제를 볼 수 있다. ✍🏻풀이 스도쿠가 유효한지 체크하는 변수 isOkay를 사용해 체크해준다. 먼저, 세로줄(행)이 유효한지 체크하고, isOkay가 false일 경우, 0을 출력하고 다음 테스트케이스로 넘긴다. isOkay가 true일 경우, 가로줄(열)이 유효한지 체크하고, isOkay가 false일 경우, 0을 출력하고 다음 테스트케이스로 넘긴다. isOkay가 true일 경우, 3 x 3을 체크한다. 3 x 3의 왼쪽 위 좌표를 사용해서, 해당 좌표부터 3 x 3 사각형을 체크하면 된다. 나는 중간 중간 isOkay를 확인하고 다음으로 넘겼는데, 그냥 마지막에서 체크해줘도 제대로 동작한다. 코드 package swea; // 스도쿠 검증 (https://swexpe..
[Baekjoon] 도영이가 만든 맛있는 음식 👀 문제 설명 문제 도영이는 짜파구리 요리사로 명성을 날렸었다. 이번에는 이전에 없었던 새로운 요리에 도전을 해보려고 한다. 지금 도영이의 앞에는 재료가 N개 있다. 도영이는 각 재료의 신맛 S와 쓴맛 B를 알고 있다. 여러 재료를 이용해서 요리할 때, 그 음식의 신맛은 사용한 재료의 신맛의 곱이고, 쓴맛은 합이다. 시거나 쓴 음식을 좋아하는 사람은 많지 않다. 도영이는 재료를 적절히 섞어서 요리의 신맛과 쓴맛의 차이를 작게 만들려고 한다. 또, 물을 요리라고 할 수는 없기 때문에, 재료는 적어도 하나 사용해야 한다. 재료의 신맛과 쓴맛이 주어졌을 때, 신맛과 쓴맛의 차이가 가장 작은 요리를 만드는 프로그램을 작성하시오. 입력 첫째 줄에 재료의 개수 N(1 ≤ N ≤ 10)이 주어진다. 다음 N개 줄에는..
[Baekjoon] 백설 공주와 일곱 난쟁이 👀 문제 설명 문제 매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다. 어느 날 광산에서 아홉 난쟁이가 돌아왔다. (왜 그리고 어떻게 아홉 난쟁이가 돌아왔는지는 아무도 모른다) 아홉 난쟁이는 각각 자신이 백설공주의 일곱 난쟁이라고 우기고 있다. 백설공주는 이런 일이 생길 것을 대비해서, 난쟁이가 쓰고 다니는 모자에 100보다 작은 양의 정수를 적어 놓았다. 사실 백설 공주는 공주가 되기 전에 매우 유명한 수학자였다. 따라서, 일곱 난쟁이의 모자에 쓰여 있는 숫자의 합이 100이 되도록 적어 놓았다. 아홉 난쟁이의 모자에 쓰여 있는 수가 주어졌을 때, 일곱 난쟁이를 찾는..
[SWEA] 규영이와 인영이의 카드게임 👀 문제 설명 문제 로그인해야 문제를 볼 수 있다. ✍🏻풀이 인영이의 카드로 순열을 구하고, 순열을 구할 때마다 누가 이기는지 구해주면 된다! 코드 package swea; // 규영이와 인영이의 카드게임 (https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWgv9va6HnkDFAW0&categoryId=AWgv9va6HnkDFAW0&categoryType=CODE&problemTitle=6808&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 ) import java.util.*; import java.io.*; publ..
[SWEA] 햄버거 다이어트 👀 문제 설명 문제 로그인해야 문제를 볼 수 있다. ✍🏻풀이 부분 집합을 사용해 풀면 된다. 차례대로 햄버거 재료의 정보를 ingredientScore와 ingredientCal에 입력받는다. (ingredientScore[i]는 i번째 재료의 점수, ingredientCal[i]는 i번째 재료의 칼로리) 그리고, 재귀를 사용해 부분 집합 메서드를 작성한다. 나는 powerSet이라는 메서드에 매개변수로 int cnt, int score, int cal를 받았다. cnt는 재료 cnt개까지의 부분집합을 의미한다. (cnt가 2라면, 2 인덱스까지 부분집합에 넣을지 말지 결정한 것) score는 부분 집합의 원소들의 score 합을 의미하고, cal은 부분 집합의 원소들의 칼로리 합을 의미한다. 먼저, 재..
[SWEA] 가랏! RC카! 👀 문제 설명 문제 로그인해야 문제를 볼 수 있다. ✍🏻풀이 속도를 저장하는 변수를 사용한다. 1초마다 속도 상태를 입력받으므로, 속도 상태를 입력받아 0일 경우, 가만히 두고, 1일 경우 기존의 속도에 가속도값을 더하고, 2일 경우 기존 속도에 가속도 값을 빼주면 된다. 그리고 매 초 이동한 거리를 ans에 더해준다. (거 = 속 x 시) 코드 package swea; // 가랏! RC카! (https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PjMgaALgDFAUq&categoryId=AV5PjMgaALgDFAUq&categoryType=CODE&problemTitle=%EA%B0%80%EB%9E%8F&orde..
[Baekjoon] 수 찾기 👀 문제 설명 문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다. 출력 M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다. 예제 입력 1 5 4 1 5 2 3 5 1 3 7 9 5 예제 출력 1 1 1 0 0 1 ✍🏻풀이 이분탐색을 이용해서 수를 찾..
[Baekjoon] 소수 찾기 👀 문제 설명 문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. 예제 입력 1 4 1 3 5 7 예제 출력 1 3 ✍🏻풀이 수를 차례대로 입력받아 소수인지 확인한다. 먼저, 수가 2일 때는 소수이므로, ans++하고 바로 다음 수로 넘어가면 된다. 아닐 경우, 다음으로는 수가 짝수이거나 1인지 확인하고, 그렇다면 소수가 아니라는 뜻으로 다음 수로 넘긴다. 수가 홀수일 때는, for문을 사용해 수를 3부터 수 - 1까지의 홀수들로 나눠보고, 나누어떨어지면 소수가 아니라는 뜻이므로, isOkay값을..