선생님 코드&설명

/*
	- 출력 
		1.콘솔출력 : console.log( )
		2.알람메시지출력 : alert( )
		3.html출력 : 
			1. document.write( )
			2. document.querySelector( ).innerHTML
	- 입력
		1. 알람메시지입력 : prompt( )
		2. html입력 : document.querySelector( ).value
*/
let output = '' // 출력 변수
// 예시1) 입력받은 수 만큼 * 출력 
let s1 = Number( prompt('예시1 별 개수 ') )
for( let i = 1 ; i<=s1 ; i++ ){ // for s 
	// i는 1부터 입력받은 수 까지 1씩 증가반복
	output += '*' //  = 대입[기존데이터 없어짐] vs += 누적대입[기존데이터에 추가] 	
} // for e 
console.log( output )

/*
	만약에 5를 입력했을때 s1 = 5
	output =''
	for( let i = 1 ; i<=s1 ; i++ )
	
		i			조건[i<=s1]		실행문				[output]			증감식
	i = 1일때			1<=5		T	output += '*'	output = '*'		i++
	i = 2일때			2<=5		T	output += '*'	output = '**'		i++
	i = 3일때			3<=5		T	output += '*'	output = '***'		i++
	i = 4일때			4<=5		T	output += '*'	output = '****' 	i++
	i = 5일때			5<=5		T	output += '*'	output = '*****' 	i++
	i = 6일때			6<=5		F	실행X
	
*/

// 예시2) 입력받은 수 만큼 * 출력 [  - 3줄(3배수)마다 줄바꿈 ]
output = ''		// 앞전에서 사용한 output 변수를 다시 ''[공백]으로 변경 
let s2 = Number( prompt('예시2 별 개수') )
for( let i = 1 ; i<=s2 ; i++ ){ // for s 
	// 1. 별출력
	output +='*'
	// 2. 줄바꿈출력  
	if( i % 3 == 0 ){ output +='\\n' }
} // for e 
console.log( output )

/*
	만약에  5를 입력했을때 s2 = 5
	output = ''
	for( let i = 1 ; i<=s2 ; i++ )
	
		i			조건[i<=s1]	  		실행문			조건1[i%3==0]  		[output]			 		
	i = 1일때			1<=5		T	output += '*'		1%3 == 1			output = '*'				
	i = 2일때			2<=5		T	output += '*'		2%3 == 2			output = '**'				
	i = 3일때			3<=5		T	output += '*'		3%3 == 0			output = '***\\n'			
	i = 4일때			4<=5		T	output += '*'		4%3 == 1			output = '***\\n*' 			
	i = 5일때			5<=5		T	output += '*'		5%3 == 2			output = '***\\n**' 			
	i = 6일때			6<=5		F	실행X
*/

/*
1. 입력받은 줄수[line] 만큼 출력 예시) 5 
				i[line]		s[star]
	*			i=1			s = 1
	**			i=2			s = 1 2 
	***			i=3			s = 1 2 3 
	****		i=4			s = 1 2 3 4 
	*****		i=5			s = 1 2 3 4 5 
				- i는 1부터 입력받은 수까지 1씩증가 	= for( let i = 1 ; i<=line ; i++ )
					- s는 1부터 1까지 - s는 1부터 2까지 - s는 1부터 3까지 - s는 1부터 4까지 - s는 1부터 5까지
				- 결론  s는 1부터 i까지				= for( let s = 1 ; s<=i ; s++ )
*/
// 문제1)
output =''
let line1 = Number( prompt('문제1 줄수 ') )
for( let i = 1 ; i<=line1 ; i++ ){ // for s 
	// 1. 별찍기 
	for( let s = 1 ; s<=i ; s++ ) { // for s 
		output += '*' 
	} // for e  
	// 2. 줄바꿈 
	output += '\\n'
} // for e 
console.log( output )

/*
2. 입력받은 줄수[line] 만큼 출력  예시) 5 
			i[line]		s[star]				[ 예시 ]
	*****	i = 1		s = 1 2 3 4 5 		입력받은 줄수 - 현재줄수+1 : 5 - 1+1	5
	****	i = 2		s = 1 2 3 4 		입력받은 줄수 - 현재줄수+1 : 5 - 2+1	4
	***		i = 3 		s = 1 2 3 			입력받은 줄수 - 현재줄수+1 : 5 - 3+1	3
	**		i = 4		s = 1 2				입력받은 줄수 - 현재줄수+1 : 5 - 4+1	2
	*		i = 5		s = 1				입력받은 줄수 - 현재줄수+1 : 5 - 5+1	1
			i는 1부터 입력받은 줄 까지 1씩증가 		= for( let i = 1 ; i<=line2 ; i++ )
			s는 1부터  (입력받은 줄수 - 현재줄수+1)까지	= for( let s = 1 ; s<= line2-i+1 ; s++ )
				s는 1부터 5까지		s는 1부터 4까지		s는 1부터 3까지		s는 1부터 2까지		s는 1부터 1까지
*/
output = ''
let line2 = Number( prompt('문제2 줄수') )
for( let i = 1 ; i<=line2 ; i++ ){ // for s	 : 줄마다 별/줄바꿈 출력
	// 1. 별 
	for( let s = 1 ; s<= line2-i+1 ; s++ ){ // for s 
		output += '*';
	} // for e
	// 2. 줄바꿈
	output += '\\n'
} // for e 
console.log( output )

Untitled

설명을 기반으로 푼 문제

/*
3. 입력받은 줄수[line] 만큼 출력 예시 ) 5	
			i[line]		b[공백]:문제2		s[별]:문제1
	    *	i = 1		b = 1 2 3 4  	s = 1 
	   ** 	i = 2		b = 1 2 3 		s = 1 2 
	  ***	i = 3 		b = 1 2 		s = 1 2 3 
	 ****	i = 4 		b = 1			s = 1 2 3 4
	*****	i = 5		b = 			s = 1 2 3 4 5 
			- i는 1부터 입력받은 줄 까지 1씩 증가 			= for( let i = 1 ; i<=line3 ; i++ )
			- b는 1부터 (입력받은줄-현재줄수) 까지 1씩증가	= for( let b = 1 ; b<=line3-i ; b++ )
			- s는 1부터 현재줄수 까지 1씩 증가			= for( let s = 1 ; s<=i ; s++ )
			!!! 줄마다 공백과 별과 줄바꿈 출력
			
			for( let i = 1 ; i<=line3 ;i++ ){
				for( let b = 1 ; b<=line3-i ; b++ ) { }
				for( let s = 1 ; s<=i s++ ){ }
			}
*/
output = '';
let line3 = Number(prompt('문제 3 줄 수'))
for(let i = 1; i <= line3; i++){
	for(let b = 1; b <= line3-i; b++){
		output += " ";
	}
	for(let s = 1; s <= i; s++){
		output += "*";
	}
	output += "\\n"
}
console.log(output);

Untitled

//예제4 입력받은 줄 수[line]만큼 출력

output  ='';

let line4 = Number(prompt("문제4 줄 수 : "))
for(let i = 1; i <= line4; i++){
	
	for(let d = 1; d <= i - 1; d++){
		output += " ";
	}
	
	for(let s = 1; s <= line4-i +1; s++){
		output += "*";
	}
	output += "\\n"
}
console.log(output);

//예제5 입력받은 줄 수[line]만큼 출력

output = "";
let line5 = Number(prompt("문제5 줄 수 :"));
for(let i = 1; i <= line5; i++){
	for(let b = 1; b <= line5-i + 1; b++){
		output += " ";
	}
	for(let s = 1; s <= 2*i -1; s++){
		output += "*";
	}
	output += "\\n"
}
console.log(output);

Untitled

→ 위의 코드의 모든 입력은 5