반응형
안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1679 세모바퀴 만들기 (자바, JAVA)입니다.
Intro
Question
문제 설명
입력
철심의 길이 n이 입력된다.(3≤n≤50)
출력
1) 만들 수 있는 세모바퀴의 형태를 모두 출력한다. 이 때 세 변의 길이를 공백으로 분리해서 출력한다.
2) 단, 모든 길이는 자연수이며, 철심의 일부를 자를 수 없다.
3) 한 세모바퀴에 대해서는 각 변의 길이가 짧은 것으로부터 긴 것 순으로 출력한다.
4) 각 세모바퀴는 짧은 변의 길이가 짧은 것으로부터 긴 것 순으로 출력한다.
5) 가장 짧은 변의 길이가 같으면, 그 다음 긴 변들을 기준으로 4)를 적용한다.
예시
- 입력 : 9
- 출력 :
1 4 4
2 3 4
3 3 3
Solution (풀이)
- 풀이 : 메모리 11180, 시간 : 94
public class Answer1 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int length = Integer.parseInt(br.readLine());
int count = 0;
for (int i=1; i<=length-2; i++) { // i == 1번 변
for (int j=1; j<=length-1-i; j++) { // j == 2번 변
int c = length-i-j; // c == 3번 변
// 1. 짧은 두 변의 합이 가장 긴 변의 합보다 작아야 한다.
// 2. 순차적으로 크기 비교 (가장 짧은 변 <= 중간 길이 <= 가장 긴 변)
if (i+j>c && i<=j && j<=c) {
sb.append(i + " ").append(j + " ").append(c).append("\n");
count++;
}
}
}
// 3항 연산자 이용 : 위의 조건을 일치하는 갯수가 1개 이상일 때 출력
System.out.println(count > 0 ? sb : -1);
}
}
Ranking(순위)
반응형
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp_Java] Q1678 : 철광석 제련 (2) | 2023.01.30 |
---|---|
[CodeUp_Java] Q1701 : 세 정수 거꾸로 출력하기 (0) | 2023.01.18 |
[CodeUp_Java] Q1702 : 학번 출력하기 (0) | 2023.01.18 |
[CodeUp_Java] Q1414 : C언어를 찾아라 (0) | 2023.01.16 |
[CodeUp_Java] Q1467 : 2차원 배열 순서대로 채우기 1-8 (0) | 2023.01.16 |