목록2017/11/20 (2)
Inor
n개의 피연산자와 n-1개의 연산자가 주어지면 연산자와 피연산자를 적절히 배치합니다. 적절히 배치해서 수식을 만드는데 수식을 계산해서 나오는 결과들의 최소값과 최대값을 구하는 문제입니다. 저는 재귀를 이용해서 문제를 해결했습니다. 연산자를 기준으로 최대 10번의 메서드 호출로 문제를 해결할 수 있기 때문에 재귀로해도 stackoverflow 에러가 발생하지 않을 것이라고 생각했습니다. 그러나 중복되는 연산을 제대로 처리해주지 못해서 시간이 오래 걸리는 문제가 있었습니다. 아래는 문제의 링크와 코드입니다. - 문제 : https://www.acmicpc.net/problem/14888 - 소스 코드 import java.util.Scanner; public class OperatorInsertion { i..
N명의 사람이 있을때, 사람들의 줄 서는 방법을 계산하는 알고리즘 문제입니다. 예를 들어서 3명의 사람이 있을때 줄 서는 방법은 [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]이 존재하고 줄서는 방법의 총 개수는 3! = 6가지 방법입니다. 문제에서는 2가지 입력(사람의 수, x번째 줄 서는 방법)이 주어집니다. 만약 사람의 수가 3명이고 4번째 줄 서는 방법을 출력할 경우에 [2,3,1]이 출력됩니다. 4명의 사람이 줄서는 직접 방법을 아래와 같이 나열하며 문제에 접근했습니다. 그리고 가장 앞에 있는 숫자를 기준으로 4가지 종류의 배열이 생긴다는 것을 알았습니다. 그래서 가장 앞에 있는 숫자를 차례로 알아내는 방법으로 문제를 해결했습니다. 앞의 자리를 알아..