개발 일지 (TIL)
TIL 2023 08 19
늘곰's
2023. 8. 19. 20:44
오늘 배운 것
페어 프로그래밍을 하면서 느꼇던 것은
진짜 서로 생각하는 문제 해결법과 정답으로 가는 과정이 다양하나는 것!
내 코드를 짜는 것에서 끝이 아니라 다른 사람의 코드를 열심히 보고 이해하려고 노력하는것도 중요하다고 느낌
팀원과 페어 프로그래밍
콜라츠 추측
// 콜라츠 추측
// 문제해결
// while문 과 if 문의 중첩으로 해결
// num이 1이 아닐때
// if 문으로 cnt( 횟수 변수)가 500보다 적을때
// 짝수 와 홀수의 계산을 하고 cnt++로 횟수를 늘려준다
// cnt 가 500 일때 -1을 출력하고 break를 건다
function solution(num) {
var cnt = 0;
while(num !== 1){
if(cnt<500){
if(num%2 ===0){
num = num/2
}else{
num = num*3 +1
}
cnt++
}else if(cnt === 500){
cnt = -1
break
}
}
return cnt;
}
서울에서 김서방 찾기
팀원의 네비게이터를 받고 너무 쉽게 풀림
// 서울에서 김서방 찾기
// 문제해결
// while 문으로 작성
// 인덱스를 만들 변수x를 지정
// while 문으로 seoul[x] 이 'Kim'이 아닐때
// x++시켜준다
function solution(seoul) {
let x = 0;
while(seoul[x] !== 'Kim'){
x++
}
return '김서방은 ' + x + '에 있다';
}
내가 원래 생각했던 풀이법
function solution(seoul) {
for (let i = 0; i < seoul.length; i++) {
if (seoul[i] === 'Kim')
return `김서방은 ${i}에 있다`
}
}
나누어 떨어지는 숫자 배열
팀원과 같이 푼 해결법
// 나누어 떨어지는 숫자 배열
// 배열의 각각을 / / divisor 로 나누었을때 떨어지는 숫자를 오름차순으로 정렬한다.
//.sort((a,b) a-b) 를 쓰면 오름 차순 으로 정렬
// for 문 반복
// 나누어 떨어지지 않으면 -1
//
function solution(arr, divisor) {
var answer = [];
let y = 0;
for(let i = 0; i<arr.length ; i++){
if(arr[i]%divisor === 0){
answer[y] = arr[i]
y++
}
}
return y>0 ? answer.sort((a,b) => a-b) : [-1];
}
개인적으로 생각했던 해결법
function solution(arr, divisor) {
var answer = [];
for(i=0; i<arr.length; i++) {
if(arr[i] % divisor === 0) {
answer.push(arr[i]);
}
}
if(answer.length === 0) {
answer.push(-1);
}
answer.sort((a,b) => a - b);
return answer;
}