SMALL
1. 코드 처리하기
(1) 조건
- 문자열 code를 읽으며, 만약 문자가 "1" 이면 mode 변경
- mode: 0, 1 존재
- 결과 문자열 ret 생성
- mode : 0
case1. code[idx]가 "1"이 아닐 때, 짝수 idx를 가지는 code[idx]를 ret 맨 뒤에 추가
case2. code[idx]가 "1"일 때, mode를 0에서 1로 변경
- mode : 1
case1. code[idx]가 "1"이 아닐 때, 홀수 idx를 가지는 code[idx]를 ret 맨 뒤에 추가
case2. code[idx]가 "1"일 때, mode를 1에서 0로 변경
- 시작할 때, mode는 0
- return하려는 ret이 빈 문자열 > "EMPTY" return
(2) 코드
// 시작할 때 mode는 0
// return 하려는 ret가 만약 빈 문자열 > "EMPTY"를 return
function solution(code) {
var ret = '';
var mode = 0;
var str = code.split('');
for(var i=0; i<str.length; i++) {
if (mode == 0) {
if (str[i] == "1") {
mode = 1;
} else { // str[i] != "1"
if (i%2 == 0) {
ret += str[i];
}
}
} else if (mode == 1) {
if (str[i] == "1") {
mode = 0;
} else{
if (i%2 == 1) {
ret += str[i];
}
}
}
}
if (ret == "") {
ret = "EMPTY";
}
return ret;
}
2. 등차수열의 특정한 합만 더하기
// a+d*idx
function solution(a, d, included) {
var answer = 0;
for (var i=0; i<included.length; i++) {
if (included[i] == true) {
answer += (a+d*i);
} else {
continue;
}
}
return answer;
}
3. 주사위 게임 2
(1) 조건
- 1부터 6까지 적힌 주사위 3개
- 각 주사위의 값은 a, b, c
- 점수 부여 기준
- 세 숫자가 모두 다름 : a+b+c
- 세 숫자 중 어느 두 숫자가 같음 : (a + b + c) × (a^2 + b^2 + c^2)
- 세 숫자가 모두 같음 : (a + b + c) × (a^2 + b^2 + c^2) × (a^3 + b^3 + c^3)
- 제한 사항
- a, b, c는 1이상 6이하의 정수
(2) 코드
function solution(a, b, c) {
var answer = 0;
// answer = (a+b+c) * (a*a+b*b+c*c) * (a*a*a+b*b*b+c*c*c);
// 제한사항 조건 주기
if ( a>=1 && b>=1 && c>=1 && a<=6 && b<=6 && c<=6) {
if ( a == b ) {
if ( b == c ){ // 3개 다 동일
answer = (a+b+c) * (a*a+b*b+c*c) * (a*a*a+b*b*b+c*c*c);
} else { // ( b != c )
// 2개 동일
answer = (a+b+c) * (a*a+b*b+c*c);
}
} else { // ( a != b )
if ( b == c ){ // 2개 동일
answer = (a+b+c) * (a*a+b*b+c*c);
} else { // ( b != c )
if ( a == c) { // 2개 같음
answer = (a+b+c) * (a*a+b*b+c*c);
} else { // ( a != c )
// 3개 다 다름
answer = (a+b+c);
}
}
}
} else {
answer = "a,b,c 값을 다시 입력해주세요.";
}
return answer;
}
728x90
'Algorithm > Javascript' 카테고리의 다른 글
[프로그래머스] 230707 코딩테스트 연습 (0) | 2023.07.08 |
---|---|
[프로그래머스] 230706 코딩테스트 연습 (0) | 2023.07.06 |
[프로그래머스] 230704 코딩테스트 연습 (0) | 2023.07.04 |
[프로그래머스] 230701 코딩테스트 연습 (0) | 2023.07.01 |
[프로그래머스] 230630 코딩테스트 연습 (0) | 2023.07.01 |
댓글