반응형
1. 프로그래머스 레벨1 <음양더하기>
: 정수가 담긴 배열 absolutes와 불린이 담긴 signs
signs가 true면 더하고 false면 빼는 문제.
아주아주 간단한 문제.
생각해보니 포스팅을 위해 자주 사용하는
컬러스크립터 사이트가 참 괜찮은 것 같다.
저런 웹사이트를 만들어서 애드센스를 달면 행복할 것 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class Solution {
public int solution(int[] absolutes, boolean[] signs) {
int answer = 0;
for(int i =0; i<absolutes.length;i++){
if(signs[i] == true){
answer += absolutes[i];
}
if(signs[i]==false){
answer -= absolutes[i];
}
}
return answer;
}
}
|
cs |
2.프로그래머스 레벨1 <내적>
: 두 정수배열의 값을 0번 인덱스부터 각각 곱한 합계 구하기.
1
2
3
4
5
6
7
8
9
|
class Solution {
public int solution(int[] a, int[] b) {
int answer = 0;
for(int i =0; i<a.length ; i++){
answer+= a[i] * b[i];
}
return answer;
}
}
|
cs |
3. 프로그래머스 레벨1 <소수 만들기>
: 3개이상 50개 이하의 숫자가 담긴 nums에서 3개를 뽑아 더한 합이 소수인 경우의 수를 구하는 문제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
class Solution {
public int solution(int[] nums) {
int answer = 0;
int len = nums.length;
for(int i =0 ; i < len; i++){
for(int k = i+1; k < len ;k++ ){
for(int j = k+1; j < len ; j++){
int Sum = nums[i] +nums[k] +nums[j];
boolean tempCheck = false;
int sosuCheck = 0;
System.out.println(Sum);
for(int l = 1; l<= Sum ; l++){
if(Sum%l ==0){
sosuCheck += l ;
}
}
if(sosuCheck == Sum+1){
answer ++;
}
}
}
}
return answer;
}
}
|
cs |
for문 덕지덕지.
nCr을 for문을 덕지덕지하여 만듦.
소수인지 판단하고 소수일 경우 answer에 값을 더해줌.
소수인지 판단하는 방법은
-판단하는 수를 n이라할 때 n을 1부터 n까지의 수로 나눠보았을 때 나머지가 0이 되는 모든 분모를 더하고
그 더한 값이 n+1인 경우
-n을 1부터 n까지의 수로 나눠보았을 때 나머지가 0이 되는 횟수가 2번이어도 소수.
수학공식)
n개의 수를 일렬로 늘어놓는 경우의 수 -> n펙토리얼 (n!) // 1부터 n까지의 모든 정수의 곱.
n*(n-1)*(n-2)*.....*1
n개의 수에서 r개를 뽑아 순서있게 늘어놓는 경우의 수 -> nPr
nPr = n!/(n-r)!
n개의 수에서 r개를 뽑는 경우의 수 -> nCr
nCr=nPr/r!
반응형