목록2017/12 (7)
Inor
저도 다른 분의 초대로 Tistory를 하게 됐습니다. 덕분에 아직 부족하지만 다양한 IT지식을 포스팅 할 수 있게 됐습니다. 저와 같이 포스팅하고 싶은 주제를 생각하시고 계시지만 초대장이 없어서 시작 못하신 분들이 있을 것이라 생각합니다. 저도 다른분의 도움으로 블로그를 시작하게 됐듯이, 블로그를 시작하고자 하시는 분들에게 도움을 드리고 싶습니다. 그러나 초대장을 보내 드려도 활동을 하시는 분들이 많이 없다는 사실이 안타까웠습니다. 그래서 진정으로 블로그를 운영하고 싶으신 분들에 한해서 초대장을 보내드리고자 합니다. 자신이 블로그를 해야하는 이유와 포스팅 주제를 댓글로 달아주시면 초대장을 보내드리겠습니다. 초대장 한 장도 헛되이 쓰고 싶지 않은 마음에 불편하게 해드려서 죄송하지만, 진정으로 원하시는 분..
- 문제 : https://www.acmicpc.net/problem/14889 N명(짝수)의 사람들이 팀을 이루는 경우의 수를 모두 구하는 문제입니다. 모든 사람들은 특정 사람과 팀을 이루었을때 시너지 효과(능력치)가 높아지고 낮아집니다. 공평한 경기를 위해 팀을 구성 했을때, 2팀의 시너지 효과 차이가 가장 적은 경우를 찾는 문제입니다. 경우의 수를 구해서 해당 경우에 두 팀의 시너지 효과를 구하면 됩니다. - 풀이 모든 경우의 수를 탐색하기 위해서 깊이 탐색 알고리즘을 사용했습니다. 재귀를 이용해서 깊이 탐색을 했는데 N이 30이 넘어가면 연산이 안되는 경우가 발생했습니다. 이 부분은 추후에 스택으로 바꿔서 결과가 차이 나는지 확인해보겠습니다. 그리고 조합을 구현하기 위해서 중복을 피하는 방법을 사..
- 문제 : https://www.codeground.org/practice/practiceProblemView - 풀이 주어진 요구사항을 간단한 연산으로 구현하면 되는 쉬운 문제였습니다. 커피 가격을 배열에 저장하고 배열의 인덱스로 사원들이 선호하는 커피 번호를 사용했습니다. 사원들을 순회하며 선호하는 커피 가격만큼 법인카드 한도에서 빼기 연산을 했고 한도가 넘어가면 N, 한도 내에서 구입이 가능하면 Y를 출력하도록 했습니다. - 코드 package practice; import java.util.Scanner; public class Starbucks { Scanner sc; int numOfPeople, numOfCoffee, moneyLimit; int[] preferredCoffe, coffee..
- 문제 : https://www.acmicpc.net/problem/9324 비밀 코드가 정확한 코드인지 잘못된 코드인지 해석하는 문제입니다. 어떤 알파벳이 이전에 3번 출현 했으면 해당 알파벳을 한번 더 써줘서 비밀 코드를 만듭니다. 예를 들어서, ABBSABB라는 코드가 있다면 B가 3번 출현했고 마지막에 B를 추가로 적어서 비밀 코드를 만들었습니다. 그리고 이 코드는 참입니다. 만약, ABBSAB 코드가 주어졌다면 이는 거짓입니다. B가 3번 나왔지만 마지막에 B를 써주지 않았습니다. 또한, ABBSABA 코드가 주어졌다면 이는 거짓 코드입니다. B가 3번 출현했지만 마지막 B 다음에 A가 출현했습니다. - 풀이 이전까지 알파벳이 얼마나 출현했는지 보여주는 배열(numOfAfter)을 선언해서 암..
- 문제 : https://www.acmicpc.net/problem/2851 10개의 버섯이 차례대로 주어지고 슈퍼마리오가 버섯을 순서대로 먹으며 점수를 높이는 상황을 구현하는 문제입니다. 점수가 최대한 100에 가까울 경우에 버섯 먹는 과정을 그만두고 그 점수를 출력합니다. 만약에 98과 102가 나오는 상황에서는 102를 출력하면 됩니다. - 해결 먼저 버섯을 순서대로 먹도록 구현했고 버섯을 먹으며 다음 단계에 먹을 버섯의 값과 비교해서 어떤 값이 100에 가장 가까운지 확인했습니다. 그리고 만약 102와 98이라는 값이 나오면 100과의 차이가 2 일 경우에 102에 우선순위를 두도록 했습니다. now와 after변수를 이용해서 현재 점수와 다음 버섯을 먹었을때의 점수를 비교했습니다. - 소스 코..
- 문제 : https://www.acmicpc.net/problem/10250 문제가 길지만 간단한 문제입니다. 사람의 번호를 층수로 나누었고 엘리베이터에서 얼만큼 떨어져있는지를 계산했습니다. 그리고 나머지 연산으로 사람 번호를 층으로 계산했습니다. 몇 층에 있는지 계산하기 위함이었고 0이 나오면 가장 위의 층에 있는 경우이므로 따로 분기해서 계산 했습니다. - 소스 코드 import java.util.Scanner; public class ACMHotel { int tNum; int[][] testCases; int[] results; public void solve() { Scanner sc = new Scanner(System.in); String tString; tNum = sc.nextInt(..