본문 바로가기
실천하기/코딩테스트

[220104] 코테 Lv.1 / 직사각형 별찍기, 크롬 콘솔에서 중복된 값 띄우기

by 한코코 2022. 1. 4.

해보려고했는데.. 아는게 별로 없어셔 예시의 구문은 사용하지 못했다.

대신 내가 아는 것 내에서 해보고, 모르는건 일단 알아두기는 하겠음.

답지를 보고 내가 아는건 console.log()랑 const 말고는 없다. 그리고 배열도 안다. 와!


 

해결 전 문제 인식하기

별을 출력하고 함수를 어떻게 짜고 말하기 전에 제일 큰 문제가 하나 있다.

 

한 줄에 나란히 쓰기는 어떻게 하지.

 

너무 간단한 문제라 헛웃음이 나는데 지금 내 수준이 여기다.

아는건 console.log()랑 if문이랑 for문이랑 연산자 몇개가 단데 뭐 어떡할거야. 그러니까 도와줘요 구글링.

구글링을 한 결과 --> process.stdout.write();

뭐가 이렇게 길어. 간단한거 없나.

심지어 실행도 안되는데? 뭐지? 어 잠만 여기서 막히면 아무것도 할 수 없는디. 출력을 못하는데 코드 짜면 뭐하냐고 확인을 못하는데.

 

혹시 console.log()로 할 수 있는 다른 방법이 있나 싶어서 질문했는데, console.log는 div라고 생각하면 편하다고 교수님이 답변을 주셨다.

한번 실행되면 무조건 개행이 되어서 방법이 없단다.

div는 float로 크기라도 줄일 수 있지 너임마 너는 코드라서 어케 할 수도 없고. 손 많이가게 굴래...?

 

그리고 교수님이 코드를 주셨다.

let printString =""
//빈 문자열 선언하는법
//와 이렇게 된다고???
//와씌 교수님 최고

for (let i=0; i<10; i++){
	printString+="*"
}

console.log(printString)

와!!!! 와!!!!!! 이렇게 생각할 수도 있구나!!!! 와!!!! 개쯘다!!!!!!!

 


해결 : for문과 덧셈연산자 사용

입력받아서 저장받은 값으로 별을 찍으라는데, 입력받는 뭐시기를 만들 코드를 제가 모르는데요...?

아 별만 찍을 줄 알면 되는거 아닙니까. 나중에 입력 코드 붙이면 딱이네. 아 정말 딱이네 그러니 넘어가자.

 

let n=5;
let m=3;

for(let i=0; i<m; i++){ 		// 세로줄 만드는 반복문
	let makeStar=""; 			// 빈 문자열 선언
	for(let j=0; j<n; j++){ 	// 가로줄 만드는 반복문
		makeStar+="*";			// 별을 한 줄에 넣는 코드
	}
	console.log(makeStar);		// 한 줄로 완성된 코드를 출력하는 값
}

 

이렇게 하니까 콘솔이 중복된 값이라고 3만 떨렁 보여준다. 야 내놔. 내 별 리스트야.

배열 3줄짜리를 만들어서 각각 넣으면 다른 인덱스 값을 가진 배열이니까 중복되지 않게 내보내지 않을까.

//만들고 싶은 배열
arr[0] = "*****"
arr[1] = "*****"
arr[2] = "*****"

 

 

오 실패. 배열 인덱스가 달라도 값이 같으면 저렇게 다 처리하는구나 그래. 이건 설정을 건드려야겠나본데.

감사하게도 크롬 도움말 페이지에서 해결방법을 찾았다.

Group sililar을 끄면 같은 코드도 모조리 보인다.

 

 

기능적으로 보면 같은 코드를 안 보이게 하는게 더 낫겠지. 하지만 난 지금은 쪼렙이니까 보고 만족하는 과정이 필요하다고.

출력값이 엄청나게 길어질때쯤엔 꺼야지.

 

원본문제는 아래 링크에

https://programmers.co.kr/learn/courses/30/lessons/12969?language=javascript 

 


[220108] repeat로 풀기

let data="5 3"
        const n=data.split(" ");
        const a=Number(n[0]), b = Number(n[1]);
        
        const temp = '*'.repeat(a)
        for(let i=0; i<b; i++){
            console.log(temp)
        }

댓글