반응형

C 41

[C] 백준알고리즘 #2442 #2443 별 찍기 - 5 , 6 (트리, 역트리)

마치 트리모양의 별을 찍는 문제이다. 규칙을 찾아보면 빈칸은 N-1개부터 차례대로 줄어들고 *의 갯수는 1,3,5,7 ... 2n-1 개 만큼 늘어난다. 친절하게도 문제에서 N번째 줄에는 2*N-1개 라고 정의해주었으므로 이 식을 이용하여 코드를 짜면 된다. for문안의 첫번째 for문은 빈칸을 만드는 것. 그리고 두번째 for문은 *을 찍는 것이다. 위와 같은 문제이지만 역순으로 찍는 문제이다. 조건을 정하기가 꽤 까다로워 보이지만 규칙을 찾아보면 1번째 줄에서 2n -1 개 2번째 줄에서 2n - 3개 .. n번째줄에서 2n - (2n -1) 개 가 되어 1개가 출력되는 것을 알 수 있다. 따라서 초기값을 n*2-1부터 줄을 나타내는 i*2-1까지 감소하면서 *을 찍어주면 된다.

[C] 백준알고리즘 #2439 #2441 별 찍기 - 2, 4

똑같은 별 찍기 문제이지만 별이 오른쪽정렬한 상태로 출력이 된다. 이를 위해선 별이 찍히기 전까지는 빈칸을 출력해주어야 한다. 위와같은 문제는 빈칸부분과 별 부분을 나누어 생각해주면 편하다. 결국에는 n x n 만큼을 출력해주는 부분이므로 M을 입력했을 때 n 줄에 M-n만큼은 빈칸을, n만큼은 별을 출력해주면 된다. for문 안에 for문을 2개 만들어서 코드를 짜보았다. for문 안의 첫번째 for문은 빈칸을, 두번째 for문은 *을 출력하는 코드이다. 5를 입력받은 경우 첫번째 for문에서는 i = 1, j = 5,4,3,2,1 이 되는데 조건을 만족하는 j는 5,4,3,2 로 4개이므로 4칸의 빈칸이 생긴 후 두번째 for문으로 넘어가서 *이 한개 찍힌다. 한바퀴를 돌고 나면 i = 2 , j =..

[C] 백준알고리즘 #2438 #2440 별 찍기 - 1 , 3

for문 연습하는데 가장 많이 나오는 별 찍기 문제이다. 위 문제는 그 중에서도 가장 기본이 되는 순차적으로 1,2,3,...,n개의 별을 찍는 문제이므로 크게 어려움은 없을 것이다. i 와 j는 각각 줄, 칸을 의미한다고 보면 된다. 위 문제에서는 n번째 줄에서는 n개의 별만 찍어야 한다. 1번째 줄에서는 i = 1, j = 1,2,3,4,5 이므로 i

[C] 백준알고리즘 #11021 #11022 A+B - 7, 8

#11021번 A+B - 7 과 같은 문제이다. 11021번과 다른점은 위와같이 출력이 다르다는 점이다. 그 외에는 다른것 하나 없이 다 똑같은 코드를 작성하면 된다. for문을 사용할 때 일반적으로 0부터 시작하는 것이 일반적이나 이번 문제에서는 테스트케이스 번호를 매기게 되므로 for문의 초기값을 i = 1로 주고 Case #%d 로 작성하였다. 띄워쓰기와 대소문자 구분만 조심해주면 무난하게 정답

[C] 백준알고리즘 #2884 알람 시계

주어진 시각 h시 m분 보다 45분 빠르게 알람을 설정하는 문제이다. m이 45보다 작은 경우에만 h가 변하므로 if문을 사용하여 간단히 코드를 작성할 수 있다. m이 45보다 작다면 h에서 1을 빼고 m에 60을 더한 후 다시 45를 빼면 된다. 최종적으로는 +15분 이므로 m = m + 15; 로 간단히 하였다. h == 0 인 경우가 함정인데, 이 경우에는 -1이 아닌 23으로 바뀌어야 하므로 if문 안에 다시 조건을 분리하여 23이 되도록 설정해준다.

반응형