코딩테스트/문제풀이 18

[Softeer] [21년 재직자 대회 예선] 전광판

간만에 문제풀이,,,쉬운문제였는데 전광판 숫자 Map에서 5를 잘못입력해서 뭐가 틀렸는지 계속 찾느라 오래걸렸다..하드코딩해야 하는 부분이 있다면 여러번 확인해서 확실히 할것.. 내 소스import java.io.*;import java.util.*;public class Main { public static void main(String[] args) { HashMap map = new HashMap(); //전광판 숫자에 따른 불 ON/OFF map.put('0', "1110111"); map.put('1', "0010010"); map.put('2', "1011101"); map.put('3', "1011011");..

[코드트리] 수열의 순서 바꾸기

어려움 문제는 확실히 난이도가 높다........ 화이팅.. 1이상 N이하의 숫자가 겹치지 않게 구성된, 원소의 개수가 N개인 수열이 하나 주어졌을 때, 맨 앞에 있는 숫자를 선택해 수열 중간에 집어넣는 행동을 최소 몇 번 반복해야 숫자들이 오름차순 정렬이 되는지를 계산하는 프로그램을 작성해보세요. 입력 형식 첫 번째 줄에는 N이 주어집니다. 두 번째 줄에는 N개의 숫자가 공백을 사이에 두고 주어집니다. 1 ≤ N ≤ 100 출력 형식 첫 번째 줄에 수열을 오름차순으로 정렬하기 위해 맨 앞에 있는 원소를 뒤로 밀어 넣어야 하는 최소 횟수를 출력합니다. 입출력 예제 예제1 입력: 4 1 2 4 3 출력: 3 예제 설명 처음 숫자 1을 4와 3 사이로 옮기면 2 4 1 3이 됩니다. 그 다음 숫자 2를 1과..

[코드트리] 홀수 짝수의 묶음

간만에 봐도 잘 이해가안되는 문제가 생겨서 기록한다.. 그리고 기간이 얼마안남아서,, 흑흑 증말 어렵다 N개의 숫자들이 주어지면 주어진 숫자들을 전부 사용하여, 각 묶음으로 나눠 각각의 합을 구했을 때 첫 번째 묶음부터 순서대로 그 합이 짝수, 홀수, 짝수, 홀수, 짝수, … 이렇게 짝수에서 시작하여 짝홀이 계속 번갈아가면서 나오게끔 하는 만들 수 있는 최대 묶음 수를 구하는 프로그램을 작성해보세요. 단, 주어진 순서에 상관없이 묶음을 만들어도 됩니다. 입력 형식 첫 번째 줄에는 주어지는 숫자의 개수 N이 주어집니다. 두 번째 줄에는 N개의 숫자가 공백을 사이에 두고 주어집니다. 2 ≤ N ≤ 1,000 1 ≤ 주어지는 숫자들 ≤ 100 출력 형식 첫 번째 줄에 짝홀이 계속 번갈아가면서 나오게끔 하는 만..

[코드트리] 세 수의 최대 곱

어려운 문제는 아니다, 시간복잡도를 벗어나는 이슈를 피해 적당한 값을 추려놓고 그 중에 선택을 하는 문제이다. 배우지 않았으면 풀지 못했을 문제일것같아 기록함 정수 n과 n개의 수가 주어졌을 때, 3개의 숫자를 적절하게 골라 나올 수 있는 곱 중 최대값을 구하는 프로그램을 작성해보세요. 입력 형식 첫 번째 줄에 정수 n이 주어집니다. 두 번째 줄에 n개의 정수가 공백을 사이에 두고 주어집니다. 3 ≤ n ≤ 100,000 -1,000 ≤ 주어지는 수 ≤ 1,000 출력 형식 첫 번째 줄에 3개의 숫자를 적절하게 골라 나올 수 있는 곱 중 최대값을 출력합니다. 입출력 예제 예제1 입력: 12 10 -5 -2 4 -9 15 -3 6 0 7 1 -20 출력: 2700 예제 설명 -20, -9, 15를 추출하여..

[코드트리] ABC 줄 세우기

난이도는 낮지만 나중에 꼭 다시 사용할 알고리즘일것 같아 기록한다. 이것 외에도 최소값의 최댓값, 최댓값의 최솟값에 대한 알고리즘은 반드시 다시 숙지할것. 처음에 n명의 사람이 서있는 순서가 A부터 순서대로 알파벳으로 주어지면 알파벳 순으로 줄을 세우려고 합니다. 단, 순서대로 줄을 세우기 위해서는 인접한 두 사람의 위치를 계속 바꾸는 행위만 가능하다고 할 때, 가능한 최소 횟수를 구하는 프로그램을 작성해보세요. 예를 들어 4명의 사람이 서있는 순서가 A D C B와 같이 주어지면, A, B, C, D 순으로 줄을 세워야 합니다. 입력 형식 첫 번째 줄에 정수 n이 주어집니다. 두 번째 줄에 n명의 사람이 서있는 순서가 알파벳으로 공백을 사이에 두고 주어집니다. 1 ≤ n ≤ 26 출력 형식 첫 번째 줄..

[코드트리] X 달리기

이번에도 일어난 상황에 대해서 추론을 하여 적합한 답을 출력하는 문제다. 가야하는 거리가 주어지고, 시작속도를 1m/s로 시작해서 특정거리를 도달할때 다시 속도가 1m/s이여야 한다. 선택하여 속도를 1씩 늘리거나, 유지하거나, 1씩줄일수 있다. 가야하는 거리까지 가는데 가장 최단시간을 구해야한다. 오늘 뭔가 문제가 잘풀린다.. 나는 추론에 강한가,,, 후후후후,,,, Xm 만큼 달리기를 진행하려 합니다. 1m/s로 시작하되, 1초에 한 번씩 속도를 유지할 것인지, 1m/s 만큼 증가시킬 것인지, 1m/s 만큼 감소시킬 것인지를 결정할 수 있습니다. 단, 도착지에 도달하는 순간의 속력은 꼭 1m/s가 되어야만 합니다. 가능한 최단 시간을 구하는 프로그램을 작성해보세요. 단, 이동하는 도중 0m/s가 되어..

[코드트리] 코딩톡

일어난 상황에 대해서 추론을 하여 적합한 답을 출력하는 문제다. 메신저를 보낸사람과, 그 메시지를 보지않은 사람의 수들의 목록이 주어졌을때, 특정시점에서 해당 메시지를 읽지 않을 가능성이 있는사람을 출력하는 문제이다.. 어려움 난이돈데 금방 풀어서 기분이 좋고,, 아직 배우지는 않았지만 역탐색을 이용해서 처음 푼 문제이기때문에 기록한다. n명의 프로그래머들이 서로 채팅으로 대화할 수 있는 메신저방인 코딩톡에 초대되었습니다. 코딩톡 사람들의 이름은 'A'부터 n개의 대문자 알파벳이 순서대로 붙여져 있으며, 서로 대화를 하고 있습니다. 누군가 메신저방에 들어오게 되면, 이전에 보내진 모든 메세지를 읽게 됩니다. 각 프로그래머들이 언제 들어왔다가 나갔는지에 대한 정보는 전혀 없지만, 총 m개의 해당하는 메세지..

[코드트리] 스승의 은혜3

진짜,,, 정말 쉬운문젠데,,,, 너무 어렵게 생각해서 못풀었던 문제라 반성하는 의미로 기록한다.. 하나의 객체에서 두개의 변수를 각각 정렬하고, 각각의 객체를 더해서 살수있는 물건의 갯수 찾는 문젠데,, 물건가격, 배송비 따로 정렬하려고 해서 특정 테스트케이스에서만 막혔다....... 정답은 물건가격이랑 배송비를 같이 더해서 오름차순 정렬하면 되는건데,, 막상 처음 틀리면 이생각이 절대 안난다... 흑흑 선생님이 N명의 학생에게 B만큼의 예산으로 선물을 주려고 합니다. 학생 i가 원하는 선물의 가격 P(i)와 배송비 S(i)가 있고, 선생님에게는 선물 하나를 정해서 반값으로 할인받을 수 있는 쿠폰이 있습니다. 선생님이 선물 가능한 학생의 최대 명수를 구하는 프로그램을 작성해보세요. 단, 선물의 가격은 ..

[코드트리] 상해버린 치즈

이 문제는 주어진 조건에 따라 완전탐색을 하며 그 최댓값을 찾는 문제이다. 이런 류 문제는 쉽지만 조건이 까다로워서 애먹었다. 이에 기록한다. N명의 사람이 M개의 치즈를 먹었는데 정확히 하나의 치즈가 상했다는것을 뒤늦게 알았습니다. 특정 사람이 어떤 치즈를 언제 먹었는지에 대한 기록이 총 D번 주어지고, 특정 사람이 언제 확실히 아팠는지에 대한 기록이 S번 주어지게 됩니다. 완벽하게 기록된 것이 아니기 때문에, 아프다고 기록되어 있는 사람 외의 다른 사람도 아플 수 있습니다. 상한 치즈를 먹은 사람에게 약을 복용시켜야 할 때, 약이 최대 몇 개나 필요할지를 구하는 프로그램을 작성해보세요. 단, 상한 치즈를 먹게 되면 1초가 지나야 아프기 시작하며, 상한 치즈를 먹지 않는 한 배가 아플 일은 없다고 가정..