삐까냥의 파도타기

1952. 수영장 본문

코딩/SW Expert Academy

1952. 수영장

금손형아 2018. 4. 15. 10:07

1952. [모의 SW 역량테스트] 수영장



https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpFQaAQMDFAUq



dfs없이 풀수 있게다 싶어서, 하드 코딩을 했는데,


결국 dfs로 풀었네요.


dfs로 풀때, where == 11인 경우를 생각하지 않아서,


라이브 코딩하며 코드만 정리했네요,


하나하나씩 찍어보며, 디버깅을 했고,


문제를 풀었습니다.



여러분 자신의 생각이 맞다고 판단했지만, 답이 틀렸을 때


로그나, 현재 상황을 찍어보세요.


(사실 코딩 테스트를 준비하며 로그나 출력을 계속 찍어보긴 했는데, 오늘은 귀차니즘으로 찍어보기 싫었어요.)




이렇게 코딩테스트용 디버깅 레벨이 상승했습니다.


(로그 찍어보기가 귀차니즘을 넘어서는 단계)



2018년 4월 15일 - 다듬지 않은 코드 (소요시간 1시간 3분)



import java.util.Scanner;


public class Q1952 {


static int[] prices = new int[4], month = new int[12];

static int result;

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int testCase = sc.nextInt();

for (int i = 1; i <= testCase; i++) {

result = 0;

for (int j = 0; j < 4; j++) {

prices[j] = sc.nextInt();

}


//1일씩 계산

for (int j = 0; j < 12; j++) {

month[j] = sc.nextInt() * prices[0];

}

//1달씩 계산

for (int j = 0; j < 12; j++) {

if (prices[1] < month[j]) {

month[j] = prices[1];

}

}

//3달씩 계산

cal(0, 0);

System.out.println("#" + i + " " + result);

}

}

static void cal(int where, int tempResult) {

if (where < 10) {

int tempValue = month[where] + month[where+1] + month[where+2];

if (prices[2] < tempValue) {

// System.out.println(where + " -> " + (where+3));

cal(where+3, tempResult+prices[2]);

}

// System.out.println(where + " -> " + (where+1));

cal(where+1, tempResult+month[where]);

return;

} else if (where == 10) {

int tempValue = month[10] + month[11];

if (prices[2] < tempValue) {

tempResult += prices[2];

} else {

tempResult += tempValue;

}

} else if (where == 11) {

if (prices[2] < month[11]) {

tempResult += prices[2];

} else {

tempResult += month[11];

}

}

// System.out.println(where);

if (prices[3] < tempResult) {

tempResult = prices[3];

}

if (result == 0 || result > tempResult) {

result = tempResult;

}

}

}



'코딩 > SW Expert Academy' 카테고리의 다른 글

1953. 탈주범 검거  (0) 2018.04.15
2115. 벌꿀채취  (0) 2018.04.14
2383. 점심 식사시간  (0) 2018.04.13
2382. 미생물 격리  (0) 2018.04.13
1949. 등산로 조성  (0) 2018.04.13