이노캠5주차(금) 클론코딩+알고리즘 모의고사

rimhye·2023년 6월 27일
0

이노캠

목록 보기
21/39

📌클론코딩하며 알게 된 것

1.title.addEventListener("click",handleTitleClick);
시 title.addEventListener("click",handleTitleClick());로 입력하면 바로 실행되어버리니까 꼭 ()는 뺄것!

2.vs코드에서 동일 변수 단축키 Ctrl + Shift + L 로 변수명 여러 개를 동시에 변경할 수 있다.

3.Mouseevent vs Pointerevent?
노마드 클론코딩 중 강의에선 mouseevent로 출력되는 event가 나는 pointerevent로 출력되는 사실을 발견했다. 그래서 알아봄. 모던 자바스크립트 튜토리얼에서 발췌해서 그대로 번역했다.

포인터 이벤트와 마우스 이벤트의 차이점은 무엇입니까?
포인터 이벤트를 사용하면 단일 코드로 마우스, 터치 및 펜 이벤트를 동시에 처리할 수 있습니다. 포인터 이벤트는 마우스 이벤트를 확장합니다. 이벤트 이름에 있는 포인터로 마우스를 대체할 수 있으며 다른 장치 유형을 더 잘 지원하면서 코드가 마우스에 대해 계속 작동할 것으로 기대할 수 있습니다. ->즉 pointer가 기능이 더 확장된 event라고 이해함.

계속 사용되는 sting값이 있다면 새로운 변수를 지정해 그 변수를 string대신 집어넣는게 정신건강에 이롭다. 변수가 잘 못 적히면 console에 찍히는데 문자열은 console이 안 알려주니께...

📌자연수를 뒤집어 더한 값까지 출력하는 함수

목요일날 알고리즘 모의고사는 전날 공부했던 문제들과 원래 있던 문제 응용이 나왔다. Triangular Output과 상하좌우 큰 수 찾기, 그리고 지금 다룰 문제가 나왔는데 나는 상하좌우는 쿨하게 버렸다. 전날 풀다가 못 풀고 풀이까지 봤는데도 이해가 안 돼서 포기해버렸던 상하좌우 문제...삼각형 만들기는 이전에 다뤘고 개중에 쉬웠던 난이도 하
문제를 짧게 리뷰해보려고 한다.

[문제설명]
자연수 n의 각 자리 숫자를 뒤집은 순서로 더해 출력하는 수식을 리턴해주세요. 예를들어 n이 12345이면 "5+4+3+2+1=15" 라는 문자열을 리턴합니다.

  • N
    의 범위 : 100,000,000 이하의 자연수
  • 입출력 예시) 718253 -> 3+5+2+8+1+7=26

📖 내가 푼 방법

function solution(n){
	const str = String(n) //숫자를 문자로 바꿔서
	const newArr = Array.from(str) //배열로 만들어주기 
	const answer=[]; //인덱스 거꾸로 만들 배열 지정   
	result=[]; //정답 넣을 배열 만듦

	for(i=0;i<newArr.length;i++){
		answer.push(newArr[newArr.length-(1+i)]) //마지막 index는 (length-1)이므로 length-(1+i)해줘서 거꾸로 나오게 함. 		
	}

	let newAnswer = answer.map(Number); //answer 안 값을 number로 바꿈. 아니면 덧셈이 0+1+2=3이 012로 출력됨
	let sum=0; 
	for(i=0;i<newAnswer.length;i++){
		sum+=newAnswer[i];    //인덱스 다 더한 값 sum 구함 
	}
	for(i=0;i<newAnswer.length;i++){
		if(i<newAnswer.length-1){
			result.push(newAnswer[i]+"+")  //인덱스 마지막 값 전까지는 num+ 로 출력되도록 만듦
		} else {
			result.push(newAnswer[i]+"="+sum) //인덱스 마지막에서는 num=sum으로 출력되도록 만듦
		}
	}
	
	return result.join('') //만들어진 result를 문자열로 변경 
	
	
}
console.log(solution(718253))

이렇게 풀었다. Sum값을 구하는 것까지는 얼마 걸리지 않았는데 +와 =을 어떻게 연결할 지 고민을 좀 했던 것 같다. 그래도 풀 수 있어서 다행이다. reverse함수가 있다는 사실을 알고는 있는데 알고리즘 문제를 계속 풀다보니 반사적으로 걍 돌려서 만들어버렸다. 실력을 좀 쌓고 나면 기능하는 거 + 얼마나 식이 깔끔한지 신경써서 리팩토링하는 시간을 가져야겠다.

profile
개발자가 되고 싶어요

0개의 댓글