https://programmers.co.kr/learn/courses/30/parts/12230
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
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
코딩테스트 연습 - 소수 찾기
한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이
programmers.co.kr
(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
코딩테스트 연습 - 카펫
Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과
programmers.co.kr
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 |
댓글