기능,개념 & 알고리즘/알고리즘

백준 2439

ChoiDooSic 2021. 7. 25. 01:48

문제
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

j에 loop의 값을 담아 바깥쪽 while이 돌때마다 j-1을 해주고 
for문의 i가 j미만일때는 공백을 넣고 j보다 커진다면 별을 넣어주는 것이다.

이렇게 돨때에 j의 값이 5라 설정하고 예를 들자면 
첫회차에 i는 j미만인 4까지 공백을 넣고 j이상은 *을 넣어준다 "공공공공별" 그리고 j를 -1해준다
이회차에 i는 j미만인 3까지 공백을 넣고 j이상은 *을 넣어준다 "공공공별별" 이걸 계속 반복하는데
와일문의 반복 조건인 j가 0이 아닐때까지 반복하게 된다
마지막 반복문 j가 1이 남았을때에는 i의 초기값은 1이기에 i가 j에 미만일때는 성립하지않아 별만찍게되고
1의값은 j를 -1을 해주면서 j가 0이되어 반복문을 끝내게 되는 것 이다.

이번 문제는 특별히 고민을 좀 했던것 같다 이중 반복문을 쓰고싶지 않았는데

쓰지 않고서는 도저히 풀 방법이 떠오르지않았기 때문이다.

다 풀고나서 다른 사람들의 풀이를 봤는데 역시...이중 반복문을 쓰지 않고서는 풀 방법이 없었다

시간기록은 140ms이다

'기능,개념 & 알고리즘 > 알고리즘' 카테고리의 다른 글

백준 4344 자바  (0) 2021.08.31
백준 4673 자바  (0) 2021.08.31
백준 10952자바  (0) 2021.08.24
백준 2741번 1번부터 N번까지 빠른 출력  (0) 2021.07.23
백준 15552번 빠른 A+B  (0) 2021.07.21