[TopCoder] DiamondLogo

  1. 문제 원문

https://arena.topcoder.com/#/u/practiceCode/1344/1782/1910/1/1344

 

 

2.  문제 요약

문제는 전통적인 별찍기와 비슷한 문제이다.

대각선의 길이가 주어지면, 대각선을 길이를 기준으로 X를 찍고

안쪽은 공백을, 나머지는 주어진 문자열을 찍는 문제이다.

 

  1. 문제 해결 방법

먼저 라인의 수를 계산한다. 라인의 수는 대각선의 길이를 기준으로 계산한다.

(대각선의길이-1) * 2 + 1 이면 라인의 수, 즉 행과 열의 길이가 나온다.

다음 으로는 윗줄부터 별을찍되 첫줄과 마지막은 하나씩 나머지는 2개씩이라는 점을 착안해서

left right 인덱스를 주고 라인의 중간까지는 left-1, right-1 을 계산

중간 이후 라인은 left + 1 , right -1 을 해준다.

 

  1. 소스코드

[Source code]

댓글 남기기