📌 문제 서로 다른 N개의 자연수의 합이 S라고 한다. S를 알 때, 자연수 N의 최댓값은 얼마일까? 📌 입력 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. 📌 출력 첫째 줄에 자연수 N의 최댓값을 출력한다. 📌 문제 풀이 👨🏫 접근 가장 많은 자연수의 개수로 S를 찾아야 한다. 그렇다면 각 자연수들의 차이가 가장 적어야 가장 많은 자연수의 합으로 S를 구할 수 있다. 이 문제를 풀기 전에 1부터 n까지의 합을 생각해보았다. n(n + 1) / 2 = k 예제가 200이어서 그 근사치를 구하기 위해 n = 19라고 했을 때 k = 190이다. 그리고 n = 20이라고 했을 때 k = 210이다. n이 19라면, 1~19의 합인데, 여기서 1~18까지 더하고 19가 아닌 29..
ROOT
📌 문제 어떤 나라에 N개의 도시가 있다. 이 도시들은 일직선 도로 위에 있다. 편의상 일직선을 수평 방향으로 두자. 제일 왼쪽의 도시에서 제일 오른쪽의 도시로 자동차를 이용하여 이동하려고 한다. 인접한 두 도시 사이의 도로들은 서로 길이가 다를 수 있다. 도로 길이의 단위는 km를 사용한다. 처음 출발할 때 자동차에는 기름이 없어서 주유소에서 기름을 넣고 출발하여야 한다. 기름통의 크기는 무제한이어서 얼마든지 많은 기름을 넣을 수 있다. 도로를 이용하여 이동할 때 1km마다 1리터의 기름을 사용한다. 각 도시에는 단 하나의 주유소가 있으며, 도시 마다 주유소의 리터당 가격은 다를 수 있다. 가격의 단위는 원을 사용한다. 예를 들어, 이 나라에 다음 그림처럼 4개의 도시가 있다고 하자. 원 안에 있는 숫..
📌 문제 팀 A와 B가 대결을 하려고 한다. 각 팀에 속한 사람은 다른 팀에 속한 사람과 대결을 해야 한다. 두 팀에 속한 각 사람은 대결을 한 번씩 해야 한다. 대결의 승자는 2점을 획득하고, 무승부인 경우에는 1점을 획득한다. 팀 A에 속한 사람의 능력치는 A1, A2, ..., AN이고, 팀 B에 속한 사람의 능력치는 B1, B2, ..., BN이다. 대결은 능력치가 높은 사람이 이기며, 능력치가 같은 경우 비긴다. 두 팀의 능력치가 주어졌을 때, 팀 A가 얻을 수 있는 점수의 최댓값을 구해보자. 📌 입력 첫째 줄에 팀에 속한 사람의 수 N이 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어지고, 셋째 줄에는 B1, B2, ..., BN이 주어진다. 📌 출력 첫째 줄에 팀 A가 얻을 수 있..
문제 N개의 정수가 주어지면, 이것을 연속된 두 수가 연속된 값이 아니게 정렬(A[i] + 1 ≠ A[i+1])하는 프로그램을 작성하시오. 가능한 것이 여러 가지라면 사전순으로 가장 앞서는 것을 출력한다. 입력 첫째 줄에 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 N개의 수가 주어진다. N개의 수는 1,000보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄에 문제의 정답을 출력한다. 문제 풀이 A. 접근 권국원님의 「보통의 취준생을 위한 코딩 테스트 with 파이썬」을 참고하여 작성함 이틀 동안 고민했는데 못 풀었다. 다양한 접근을 생각해야 하는데 뭔가 하나에 꽂히면 그곳에 집중하여 다른 풀이를 생각하지 못한다 ㅠㅠ 문제의 핵심은 연속된 값이 아니게 정렬하는 프로그램을 작성하..