백준 1296 맞았지만 더 효율적인 코드를 알아보기 - java

byeol·2023년 1월 11일
0

뭔가 이상하다 맞았지만 메모리를 많이 차지하도록 잘못 코드를 짠거 같다.
다른 사람들의 코드를 참고해보자

✔️ 나의 코드

import java.io.*;
import java.util.*;


class Main{		
  public static String solution(String yeon, int N, String[] team) {
	 char[] love = {'L','O','V','E'};
	 double[] answer = new double[N];
	 String final_team ="";
	 
	 double max =-1;
	 
	 // 같은 수의 경우 알파벳이 순서가 앞서는 것이 답이므로 정렬하기
	 Arrays.sort(team);
	 
	 // 팀 이름을 하나씩 돌자
	 for(int i=0;i<N;i++) {
		 // 연두의 이름과 팀 이름을 합치기 (concat)
		 String a= yeon.concat(team[i]);
		 // LOVE의 개수를 저장할 배열 result
		 int[] result = new int [4];
		 // 문자 배열 love를 돌며 연두의 이름과 팀 이름의 LOVE 개수 넣기
		 for(int j=0;j<love.length;j++) {
		     int nt=-1;
			 do {
			   nt =a.indexOf(love[j],nt+1);
			   if(nt!=-1) 
				   result[j]++;
		     }while(nt!=-1);
	      }
		 // LOVE 개수를 바탕으로 연산해서 answer에 넣기
		 answer[i]=((result[0]+result[1])*
				 (result[0]+result[2])*
				 (result[0]+result[3])*
				 (result[1]+result[2])*
				 (result[1]+result[3])*
				 (result[2]+result[3]))%100;
		
	 }
	 
     
	 // 가장큰 max값을 구하고 그 max값의 팀 이름을 구하기
	 for(int i=0;i<answer.length;i++) {
		 if(max<answer[i]) {
			 max = answer[i];
			 final_team = team[i];
		 }
	 }
	 return final_team;
  }
  public static void main(String[] args) throws IOException{
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
     String yeon = br.readLine();
     int N = Integer.parseInt(br.readLine());
     String[] team = new String[N];
 
     for(int i=0; i<N;i++)
    	 team[i]=br.readLine();
     
     System.out.println(solution(yeon,N,team));
    		 
     
  }
}
profile
꾸준하게 Ready, Set, Go!

0개의 댓글