N=5로 초기화 한 후 if문을 사용하는데 기준을 A 한 명에게 두고 A가 이긴 경우 A가 가위로 이긴 경우 A가 바위로 이긴 경우 A가 보로 이긴 경우 A가 비긴경우 A가 진 경우로 구별한다. import java.util.Scanner; public class Main { public String solution(int n, int[] a, int[] b) { String answer=""; for (int i = 0; i < n; i++) { if(a[i]==b[i]) answer += "D"; else if (a[i]==1 && b[i]==3) answer += "A"; else if (a[i]==2 && b[i]==1) answer += "A"; else if (a[i]==3 && b[i]==2..
IntelliJ 유료 버전에서 templates 에러 뜨는 경우가 있다. 2023-05-29 16:20:11.348 WARN 13900 --- [ main] ion$DefaultTemplateResolverConfiguration : Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) 이런 경우 스프링 부트 스타터 중에 템플릿을 implement 하고 있으나 템플릿이 없는지 확인을 해보아야한다. resources 밑에 templates 디렉터리를 만들고..
자바의 자료형은 기본 타입(primitive type)와 참조 타입(reference type)로 나누어지는데 기본타입의 데이터를 객체로 취급해야하는 경우가 있다. 이럴 때 쓰는게 wrapper class인데 기본타입을 객체 형태로 포장하는 것을 의미한다. 기본 타입 : 정수, 실수, 문자, 논리형의 실제 데이터 값 저장 참조 타입 : 객체의 번지를 참조(주소 저장) 메소드 인수로 객체 타입만이 요구된다면 기본 타입의 데이터를 그대로 사용할 수 없기 때문에 기본 타입의 데이터를 객체로 변환한 후에 작업을 수행해야 한다. 왜 wrapper class가 필요한가 싶은데 메서드에 전달된 arguments를 수정하기 위해서는 기본형 변수들을 참조형 변수로 변환해야한다.(기본 형 변수는 값으로 전달되기 때문) j..
이중 for문으로 짜면 O(n^2)이므로 이 방법 말고 max를 하나 만들어 두고 max를 130으로 초기화 max -> i라는 학생 바로 앞의 학생들 중에서 가장 키가 큰 학생의 키 max값 변할 때마다(130->135->148->150->153) answer ++ import java.util.ArrayList; import java.util.Scanner; public class Main { public int solution(int n, int[] arr) { int answer=1, max=arr[0]; for (int i = 1; i max) { max = arr[i]; answer++; } } return answer; } public static vo..
단순하게 배열에 넣고 탐색하면 끝나는 문제 import java.util.ArrayList; import java.util.Scanner; public class Main { public ArrayList solution(int n, int[] arr) { ArrayList answer = new ArrayList(); answer.add(arr[0]); //첫 번째 수는 무조건 출력이므로 arraylist에 추가 for (int i = 1 ; i arr[i-1]) answer.add(arr[i]); return answer; } public static void main(String[] args){ Main T = new Main(); Scanner kb = new Scanner(System.in); ..
import java.util.ArrayList; import java.util.Scanner; public class Main { public String solution(int n, String s) { String answer =""; for (int i = 0; i < n; i++) { //n개의 문자가 만들어져야함 String tmp = s.substring(0,7).replace('#', '1').replace('*','0'); //0~7번인덱스까지 분리해서 대체 int num = Integer.parseInt(tmp, 2); answer += (char)num; // System.out.println(tmp+ " "+num); s=s.substring(7); //이 코드가 없으면 앞의 7글자..
변수 i로 탐색 cnt = 1로 초기화를 해준다. (가장 왼쪽부터 단어가 있기 때문에) i == i+1과 비교를 하여 참이면 cnt를 증가시키고 거짓이면 answer에 단어를 누적을 시킨다. 그리고 cnt도 1일 경우엔 생략을 해야하므로 1보다 큰 경우에 String화 해서 answer에 누적시킨 후 작업이 완료되면 다시 cnt를 1로 초기화 시킨다. import java.util.ArrayList; import java.util.Scanner; public class Main { public String solution(String s) { String answer =""; s = s + " "; //s 맨 뒤에 빈 문자 추가 int cnt = 1; for (int i = 0; i < s.length(..
문자열 형 변환 종류에는 String.valueOf(), Object.toString()가 대표적이다. 두 메서드 모두 객체-> String문자열 참조 자료형으로 형변환 해주는 역할을 한다. 1.String.valueOf() NULL이 전달될 경우 문자열 "null"을 반환한다. 2.toString() toString()은 NULL 값을 문자열로 형 변환시에 NullPointerException을 발생시킨다.