programmers

·programmers
문제 설명IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 같은 방식으로 결정하려고 합니다. 해커톤 대회에 참가하는 모든 참가자들에게는 숫자들과 3가지의 연산문자(+, -, *) 만으로 이루어진 연산 수식이 전달되며, 참가자의 미션은 전달받은 수식에 포함된 연산자의 우선순위를 자유롭게 재정의하여 만들 수 있는 가장 큰 숫자를 제출하는 것입니다. 단, 연산자의 우선순위를 새로 정의할 때, 같은 순위의 연산자는 없어야 합니다. 즉, + > - > * 또는 - > * > + 등과 같이 연산자 우선순위를 정의할 수 있으나 +,* > - 또는 * > +,-처럼 2개 이상의 연산자가..
·programmers
업무용 소프트웨어를 개발하는 니니즈웍스의 인턴인 앙몬드는 명령어 기반으로 표의 행을 선택, 삭제, 복구하는 프로그램을 작성하는 과제를 맡았습니다. 세부 요구사항은 다음과 같습니다.표에서 진하게 칠한 칸은 선택한 행입니다. 한 번에 한 행만 선택할 수 있으며 표의 범위를 벗어날 수 없습니다. 이때 다음과 같은 명령어를 이용해 표를 편집합니다.“U X” : 현재 선택한 행에서 X칸 위에 있는 행을 선택합니다.“D X” : 현재 선택한 행에서 X칸 아래에 있는 행을 선택합니다.“C” : 현재 선택한 행을 삭제한 후, 바로 아래 행을 선택합니다. 단, 삭제된 행이 가장 마지막 행인 경우 바로 윗 행을 선택합니다.“Z” : 가장 최근에 삭제한 행을 원래대로 복구합니다. 단, 현재 선택한 행은 바뀌지 않습니다.예를..
·programmers
게임 캐릭터를 4가지 명령어를 통해 움직이려 합니다. 명령어는 다음과 같습니다.U : 위쪽으로 한 칸 가기D : 아래쪽으로 한 칸 가기R : 오른쪽으로 한 칸 가기L : 왼쪽으로 한 칸 가기캐릭터는 좌표평면의 (0, 0) 위치에서 시작합니다. 좌표평면의 경계는 왼쪽 위(-5, 5), 왼쪽 아래(-5, -5), 오른쪽 위(5, 5), 오른쪽 아래(5, -5)로 구성합니다.예를 들어 ULURRDLLU라고 명령하면 ➊~➐까지는 이렇게 움직입니다.➑~➒까지는 다음과 같이 움직입니다.이때 우리는 게임 캐릭터가 지나간 길 중 캐릭터가 처음 걸어본 길의 길이를 구하려고 합니다. 예를 들어 위의 예시에서 게임 캐릭터가 움직인 길이는 9이지만 캐릭터가 처음 걸어본 길의 길이는 7이 됩니다. 다시 말해 8, 9번 명령어에..
·programmers
2차원 행렬 arr1과 arr2를 입력받아 arr1에 arr2를 곱한 결과를 반환하는 solution( ) 함수를 완성하세요.제약조건행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다.행렬 arr1, arr2의 데이터는 -10 이상 20 이하인 자연수입니다.곱할 수 있는 배열만 주어집니다입출력의 예풀이 과정해당 문제를 풀기 위해선 행렬의 곱셈에 대해 알아야한다.행렬의 곱셈은 결과적으로 A의 세로 길이와 B의 가로 길이 값을 갖는 행렬이 만들어진다그러므로해당 배열에서는 행렬 곱 C는 M*N 행렬로 정의된다해당 C의 값은 다음과 같이 쓸수 있다그리고 이 풀이를 그대로 java에 이식하면 원하는 결과가 나오게된다최대 데이터 개수가 100개이므로 시간복잡도에 대해서는 생각하지 않아도되며행렬에..
·programmers
수포자는 수학을 포기한 사람을 줄인 표현입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다.1번 수포자가 찍는 방식 : 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...2번 수포자가 찍는 방식 : 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...3번 수포자가 찍는 방식 : 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...1번 문제부터 마지막 문제까지의 정답이 순서대로 저장된 배열 answers가 주어졌을 때 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 반환하도록 solution( ) 함수를 작성하세요.제..
·programmers
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 2개의 수를 뽑아 더해 만들 수 있는 모든 수를 배열에 오름차순으로 담아 반환하는 solution( ) 함수를 완성하세요.제약 조건numbers의 길이는 2 이상 100 이하입니다.numbers의 모든 수는 0 이상 100 이하입니다.입출력의 예풀이 - map과 list를 통한 풀이import java.util.*;class Solution { public List solution(int[] numbers) { List list = new ArrayList(); Map map = new HashMap(); for(int i=0; i풀이 - HashSet과 Stream을 활용한 풀이..