본문 바로가기
반응형

알고리즘 문제풀이101

[Backjoon] 2309번 문제 - 일곱 난쟁이 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다.아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 풀이바보 같은 방법일수도 있지만 기본 컨셉은, 2개씩 뺀것의 합이 100이면해당 하는 배열의 값을 0으로 만들어 준 후 sort를 하고 2번인덱스부터 출력하는 것이다.간단하게 합을 구하기 위해서 배열을 stream으로 변경했다.이렇게 구해진 배열의 총 합에, 첫번째.. 2017. 6. 27.
[Backjoon] 10757번 문제 - 큰 수 A+B A+B를 계산하시오. 풀이 문제 설명만 봐서는 엄청 간단하지만입력으로 주어지는 A와 B의 범위가 10^10000 이기 때문에 일반적인 데이터형으로는 계산이 불가능하다.이러한 이유때문인지는 몰라도, 맥os나 안드로이드에서 기본적으로 주어지는 계산기에도 일정 범위 이상의 수는 합이나 곱의 계산이 불가능하다. 때문에 수를 그냥 받아오는 것이 아니라 문자형으로 받은 뒤 정수형 배열에 쪼개서 넣어준다.그리고 맨 첫자리와 첫자리가 대응되도록 더하기를 해주고 해당 인덱스에서 올림수가 발생하면 다음 배열로 넘기도록한다.이렇게 마지막 자리까지 덧셈이 완료되면, 결과값 배열을 출력해주면서 프로그램을 종료한다. 123456789101112131415161718192021222324252627282930313233343536.. 2017. 6. 27.
[Backjoon] 9656번 문제 - 돌 게임 2 돌 게임은 두 명이서 즐기는 재밌는 게임이다.탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 지게 된다.두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다. 풀이완벽하게 게임한다는 가정하에 테이블로 승자를 계산해보자.주어진 수가 짝수이면 상근이가, 홀수이면 창영이가 승리한다는 것을 알 수 있다. 123456789101112131415161718import java.util.Scanner; /** * Created by homr on 2017. 6. 26.. */public class Main { public static void main(.. 2017. 6. 26.
[Backjoon] 5576번 문제 - 콘테스트 최근 온라인에서의 프로그래밍 콘테스트가 열렸다. W 대학과 K 대학의 컴퓨터 클럽은 이전부터 라이벌 관계에있어,이 콘테스트를 이용하여 양자의 우열을 정하자라는 것이되었다.이번이 두 대학에서 모두 10 명씩이 콘테스트에 참여했다. 긴 논의 끝에 참가한 10 명 중 득점이 높은 사람에서 3 명의 점수를 합산하여 대학의 득점으로하기로 했다.W 대학 및 K 대학 참가자의 점수 데이터가 주어진다. 이 때, 각각의 대학의 점수를 계산하는 프로그램을 작성하라. 풀이10명씩 배열에 저장한 후 정렬하여 가장 큰 수 3개를 합하고 출력한다. 123456789101112131415161718192021222324252627import java.util.Arrays;import java.util.Scanner; /** * C.. 2017. 6. 26.
반응형