목록lv 3 (2)
컴굥일지

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12938 문제 내용 n개의 숫자를 더하여 s를 만든다. 이때 해당 n개의 숫자의 곱이 가장 큰 경우를 구하면 된다. 문제 풀이 중복이 허용되기 때문에 그렇게 어렵지는 않다. 모든 값이 중앙에 몰려있어야 곱했을 때 가장 크게 나오기 때문에, s를 n으로 나눈 값을 기본하면 된다. 나머지가 발생한 경우, 크기 만큼 +1을 해주면 된다. 코드 #include #include #include using namespace std; vector solution(int n, int s) { int num=s/n; if(num == 0) return {-1}; vector answer(n, num); for(..

문제 https://school.programmers.co.kr/learn/courses/30/lessons/87694 (문제가 길기 때문에, 전체 내용은 링크에서 확인) 문제 내용 직사각형이 여러 개 주어진다. 캐릭터는 이 직사각형들을 다 합쳤을 때의 나타나는 다각형의 테두리만을 걸어 다닐 수 있다. 캐릭터의 좌표와 아이템의 위치가 주어질 때, 아이템을 줍기 위해 이동해야 하는 가장 짧은 거리를 출력하면 된다. (아래는 주의 사항) 1. 직사각형이 다른 직사각형에 포함되는 경우는 없다. 2. 직사각형들이 서로 꼭짓점에서 만나거나, 변이 겹치는 경우는 없다. 3. 직사각형들을 다 합치면 반드시 하나의 다각형이 나온다. 4. 캐릭터,아이템의 위치는 반드시 다각형의 테두리에 위치한다. 문제 풀이 이 문제는 ..