오늘은 드디어 알고리즘 테스트를 봤다.
분명 한 열흘 전에 궁금해서 혼자 프로그래머스를 들어갔을 땐 0레벨 문제만 보고도 뭔가 아무 생각이 들지 않아서 꺼버렸는데, 비록 1레벨이지만 문제를 30개 넘게 풀었다는게 신기하다.
아주 조금씩이지만 배워가고 있다는게 대견하다 🙂
시험은 3문제 중 2개를 푸는거였고, 가장 어려운 문제를 제외한 두 문제를 풀었다 😅
제일 어려웠던 난이도는 일단 시험 후에 풀었다.
그냥 알고리즘을 풀 수 있게 생각을 할 수 있다는게 좋다!
윷놀이에서 0(배) 혹은 (1)등의 개수를 이용해서 도,개,걸,윷,모를 판단할 수 있다.
주어진 배열은 언제나 4자리이고, 0과 1만 들어있다고 가정했을 때, [0,1,0,0]의 값이 "걸"이 나와야한다.
let arr1 = [0,1,0,0]
function solution(arr1){
let bae = 0 // 각 배열에서 등과 배의 횟수를 구해야하기 때문에, 변수에 0을 먼저 할당한다.
let deung = 0
for (let i =0; i < arr1.length; i++){ // i는 0부터 시작을 하고, 배열의 길이 (4)만큼 돈다.
if(arr1[i] ===0){ // 이때 배열의 특정 요소(i번째 요소)가 0일 경우,
bae += 1 //배에 1이 추가되고
} else { // 0이 아니라면
deung += 1 // 등에 1일 추가된다.
}
}
if (bae === 0){ // 반복문이 끝나고 실행되는 조건문. 만약 배가 0이면
answer = "모" // 모를 반환
} else if (bae === 1){ // 배가 1이면
answer = "도" // 도를 반환
} else if (bae === 2){ // 배가 2면
answer = "개" // 개를 반환
} else if (bae === 3){ // 배가 3이면
answer = "걸" // 걸을 반환
} else if (bae === 4){ // 배가 4면
answer = "윷" // 윷을 반환
}
return answer
}
console.log(solution(arr1))
let star = 9;
function solution(star){
let tree = '' // 1. 별을 찍을 공백을 특정 변수에 할당
for (let i = 0; i < star; i++){ // 2. 트리모양의 별을 찍기 위해 반복문을 돌린다
for (let j = star; j > i; j--){
// 3. 반복변수 j는 star라는 변수에 있는 값부터 시작하고, 하나씩 작아지면서 j가 i보다 작을때까지 반복문이 돌면서,
tree += ' '
// 4. 트리라는 변수에 공백을 추가한다.
}
for(let k = 0; k < 2 * i-1; k++){ // 4.반복변수 j의 반복문이 끝나면, 반복변수 k의 반복문이 시작된다.
// 5. k는 0부터 시작하고, (2*i)-1의 값보다 작을때까지 1씩 증가하면서,
tree += '*' // 6. tree라는 변수에 별을 찍는다.
}
tree += '\n' // 7. 반복변수 k의 반복문이 종료되면, tree라는 변수에 줄바꿈을 추가한다.
}// 8. 그리고 반복변수 i의 반복문이 i=1이 되면서 다시 시작된다.
console.log(tree)
}
console.log(solution(star))
* // 결과물로 출력된다.
***
*****
*******
*********
***********
*************
***************
아직 3번 문제는 해결할 수 없었다...
하지만 계속 시도할 것이다!
그리고 풀게되면 여기에 추가해야지 😁
알고리즘 주차로 들어가면서 다들 약간 기운이 없어진거 같다. 뇌를 혹사 시켜서일까...
나도 진짜 하루에 문제를 10개씩 풀다보니 지쳐서 오늘은 많이 공부를 할 수 없었다 ㅠㅠ
헤이해지지 않도록 노력해야지!!! 지칠땐 명랑이를 만져야지
사랑하는 우리 닥스훈트 ㅎㅎ