🌷🌼λͺ¨μ—¬λ΄μš” 개발의숲🌷🌼

λ°±μ€€ 1110번 문제 λ”ν•˜κΈ° 사이클 풀이 c++ λ³Έλ¬Έ

개발/μ•Œκ³ λ¦¬μ¦˜ λ¬Έμ œν’€μ΄ C++

λ°±μ€€ 1110번 문제 λ”ν•˜κΈ° 사이클 풀이 c++

μš”μΌμ΄ 2020. 2. 25. 23:15
λ°˜μ‘ν˜•

가끔은 μ°¨κ·Όμ°¨κ·Ό μ†μœΌλ‘œ 디버깅 ν•˜λŠ”κ²Œ 쒋은 방법일지도 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. 

 

/*

26λΆ€ν„° μ‹œμž‘ν•œλ‹€. 2+6 = 8이닀. μƒˆλ‘œμš΄ μˆ˜λŠ” 68이닀. 6+8 = 14이닀. μƒˆλ‘œμš΄ μˆ˜λŠ” 84이닀. 8+4 = 12이닀. μƒˆλ‘œμš΄ μˆ˜λŠ” 42이닀. 4+2 = 6이닀. μƒˆλ‘œμš΄ μˆ˜λŠ” 26이닀.

μœ„μ˜ μ˜ˆλŠ” 4λ²ˆλ§Œμ— μ›λž˜ 수둜 λŒμ•„μ˜¬ 수 μžˆλ‹€. λ”°λΌμ„œ 26의 μ‚¬μ΄ν΄μ˜ κΈΈμ΄λŠ” 4이닀.

N이 μ£Όμ–΄μ‘Œμ„ λ•Œ, N의 μ‚¬μ΄ν΄μ˜ 길이λ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

*/


#include <iostream>
#include <string>

using namespace std;


int main(){
  
  	// 사이클 횟수
   	int cycle = 1;
    // μƒˆλ‘­κ²Œ λ§Œλ“  수의 λ’·μžλ¦¬
	int re = 0;	
    // μž…λ ₯받은 숫자
	int num = 0;
    // λ”ν•œ κ²°κ³Ό
    int result = 0;
    // μƒˆλ‘­κ²Œ λ§Œλ“  수의 μ•žμžλ¦¬
    int n = 0;
    
    // μƒˆλ‘­κ²Œ λ§Œλ“  수
    string newNum;
	// μž…λ ₯받은 숫자λ₯Ό λ¬Έμžμ—΄λ‘œ λ°”κΏˆ
    string realnum;
	// 수λ₯Ό μž…λ ₯λ°›λŠ”λ‹€
    cin >> num ;
	// μž…λ ₯받은 수의 λ’·μžλ¦¬
	re = num%10;
	// μž…λ ₯받은 수의 λ’·μžλ¦¬μ™€ μ•žμžλ¦¬λ₯Ό λ”ν•œλ‹€
	result = re + ((num-(num%10))/10);
	// λ’·μžλ¦¬μ™€ λ”ν•œ 수의 μ•žμžλ¦¬λ₯Ό ν•©ν•΄ μƒˆλ‘­κ²Œ λ§Œλ“  수둜 λ§Œλ“ λ‹€
	newNum = to_string(re) + to_string(result%10);
	// μž…λ ₯받은 μˆ˜κ°€ 1μžλ¦¬λ³΄λ‹€ 크면
	if(num>9){
    // μž…λ ₯받은 수λ₯Ό λ¬Έμžμ—΄λ‘œ λ§Œλ“ λ‹€
	    realnum = to_string(num);
	}else{
    // μž…λ ₯받은 μˆ˜κ°€ 1자리면 μ•žμ— 0을 뢙인닀
	    realnum = "0" + to_string(num);     
	}
	// μž…λ ₯받은 μˆ˜μ™€ μƒˆλ‘­κ²Œ λ§Œλ“  μˆ˜κ°€ κ°™μ„λ•ŒκΉŒμ§€ 반볡
    while(newNum != realnum){
            // μƒˆλ‘œμš΄ 수의 λ’·μžλ¦¬λ₯Ό n에 λ‹΄λŠ”λ‹€(μƒˆλ‘­κ²Œ λ§Œλ“  수의 μ•žμžλ¦¬)
            n = re;
            // λ”ν•œ 수의 뒷라리λ₯Ό re에 λ‹΄λŠ”λ‹€(μƒˆλ‘­κ²Œ λ§Œλ“  수의 λ’·μžλ¦¬)
            re = result % 10;  
            // μƒˆλ‘­κ²Œ λ§Œλ“  수의 μ•žμžλ¦¬μ™€ λ’·μžλ¦¬λ₯Ό λ”ν•œλ‹€
            result = n + re; 
            // μƒˆλ‘œμš΄ 수λ₯Ό λ§Œλ“ λ‹€
		    newNum = to_string(re) + to_string(result%10);
    	
        // 사이클 횟수 높이기
        cycle += 1;	

	}
	
    // 사이클 횟수 좜λ ₯
	std::cout << cycle << std::endl;
    
return 0;

}

그림으둜 κ·Έλ €λ³΄μ•˜μŠ΅λ‹ˆλ‹€λ§Œ.. 악필이라 잘 μ•Œμ•„λ³΄μ‹€μ§€ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.
고민의 흔적 λΏŒλ“―ν•©λ‹ˆλ‹€

Comments