[백준풀이]백준14215 세개의 값을 각각 비교할때

SeoYehJoon·2023년 10월 2일
0

풀코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class MakeTri 
{
	public static void main(String[] args) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		int[] line = new int[3];
		
		int maxlen =0;
		int maxidx =0;
        
        //입력받은 값을 배열에 넣는부분(배열에 넣어야 반복문 연산 용이)
		for(int i=0;i<3;i++)
		{
			line[i] = Integer.parseInt(st.nextToken());
			if(line[i]>maxlen)
			{
				maxlen=line[i];
				maxidx= i;
			}
		}
		
		System.out.println("maxlen : "+maxlen);
		System.out.println("maxidx : "+maxidx);
		
        //재일큰변이 나머지 두변의 합보다 크거나 같으면 안된다
        //만일 크거나 같다면 (작은 두변의 합-1)을 해준다.
		for(int i=0;i<2;i++)
		{
			for(int j=i+1;j<line.length;j++)
			{
				if(i==maxidx ||j==maxidx)continue;
				if(maxlen == line[i]+line[j] || maxlen > line[i]+line[j])
				{
					line[maxidx]=line[i]+line[j]-1;
				}
			}
		}
		
		int result =0;
		for(int i=0;i<line.length;i++)
		{
			result +=line[i];
		}
		System.out.println(result);
	}
}




제일 큰변과 작은변의 합 비교 부분


i번째 요소와 j요소가 작은 변일 경우 재일 큰변과 비교해 유효한 삼각형인지 판단함으로 해당 인덱스가 최대길이 변일경우 배제한다(continue)




각각 비교 알고리즘

반복문시 세가지의 요소를 각각 한번씩 다비교하려면 다음과 같은 반복문 형태를 기억하자

for(int i=0;i<line.length;i++)
{
	for(int j=i+1;j<line.length;j++)
	{
				
	}
}

안쪽반복문의 요소는 바깥쪽 요소의 +1부터 시작한다.

profile
책, 블로그 내용을 그대로 재정리하는 것은 가장 효율적인 시간 낭비 방법이다. 벨로그에 글을 쓸때는 직접 문제를 해결한 과정을 스크린샷을 이용해 정리하거나, 개념을 정리할때는 최소2,3개소스에서 이해한 지식을 정리한다.

0개의 댓글