https://programmers.co.kr/learn/courses/30/parts/12230
List<자료형> list = new ArrayList<>() : List선언
list.size() : 리스트의 길이
Collections.sort(list) : 리스트 정렬
list.get(인덱스) : 해당 인덱스에 있는 리스트의 값 반환
import java.util.*;
class Solution {
public int[] solution(int[] answers) {
List<Integer> l = new ArrayList<Integer>();
int[] one ={1,2,3,4,5};
int[] two={2,1,2,3,2,4,2,5};
int[]three={3,3,1,1,2,2,4,4,5,5};
int result[]=new int[3];
for(int i=0; i<answers.length; i++){
if(answers[i]==one[i%5]) result[0]++;
if(answers[i]==two[i%8]) result[1]++;
if(answers[i]==three[i%10]) result[2]++;
}
int max=0;
for(int i=0; i<result.length; i++){
if(max<result[i]) max=result[i];
}
for(int i=0; i<result.length; i++){
if(result[i]==max) l.add(i+1);
}
Collections.sort(l);
int[] answer = new int[l.size()];
for(int i=0; i<l.size(); i++){
answer[i]=l.get(i);
}
return answer;
}
}
https://programmers.co.kr/learn/courses/30/lessons/42839
(int)Math.sqrt(숫자) : 해당 숫자의 제곱근 후 정수로 형변환
Integer.parseInt(tmp) : String을 int형으로 변환
list.contains(item) : item이 리스트에 포함되어있으면 True 없으면 False
list.add(element) : list에 element 추가
String n -> n.length() : String n의 길이
string.charAt(index) : String의 특정 인덱스 값
string.substring(start,end) : 특정문자열의 start인덱스부터 end전까지 부분문자열
import java.util.*;
class Solution {
int result=0;
List<Integer> l = new ArrayList<>();
public boolean is_prime(int n){
if(n==0 || n==1) return false;
for(int i=2; i<=(int)Math.sqrt(n);i++){
if(n%i==0) return false;
}
return true;
}
public void dfs(String numbers, boolean[] visited,
String tmp, int len, int depth){
if(len==depth){
int n=Integer.parseInt(tmp);
if(!l.contains(n)){
l.add(n);
if(is_prime(n)) result++;
}
return;
}
for(int i=0; i<numbers.length(); i++){
if(!visited[i]){
visited[i]=true;
tmp+=numbers.charAt(i);
dfs(numbers,visited,tmp,len,depth+1);
tmp=tmp.substring(0,tmp.length()-1);
visited[i]=false;
}
}
}
public int solution(String numbers) {
int answer = 0;
boolean[] visited = new boolean[numbers.length()];
for(int i=0; i<numbers.length(); i++){
dfs(numbers, visited, "",i+1,0);
}
answer=result;
return answer;
}
}
https://programmers.co.kr/learn/courses/30/lessons/42842
import java.util.*;
class Solution {
public int[] solution(int brown, int yellow) {
int[] answer = new int[2];
int N,M;
for(int i=1; i<=yellow; i++){
if(yellow%i!=0) continue;
N=i;
M=yellow/i;
if(brown==2*(M+N+2)){
answer[0]=M+2;
answer[1]=N+2;
break;
}
}
return answer;
}
}
'Algorithm > 완전탐색' 카테고리의 다른 글
[백준] 1759번: 암호 만들기 (0) | 2021.09.17 |
---|---|
[프로그래머스] 카펫 (0) | 2021.09.09 |
[프로그래머스] 메뉴리뉴얼 (C++) (2021 KAKAO 기출 ) (0) | 2021.09.08 |
[백준] 10819번 : 차이를 최대로 (C++) (0) | 2021.08.19 |
댓글