티스토리 뷰

728x90

P(R) represents a pattern drawn by Julia in R rows. The following pattern represents P(5):

Write a query to print the pattern P(20).

 

 

MS-SQL에서는 무지 쉽다.

DECLARE @NUM INT = 20

WHILE @NUM > 0 
BEGIN
    SELECT REPLICATE('* ',@NUM)
    SET @NUM = @NUM - 1
END

MYSQL은 뭔지 몰라서 한참 찾았다.

LPAD 또는 RPAD를 사용하면 되는데 중요한 것은 2번째 인자이다.

REPLICATE는 특별하게 생각할 필요없이 반복한 숫자를 넣어주면 되지만

LPAD/RPAD는 최종 문자열의 길이를 정해줘야 한다.

즉, '*'만 찍어야 하는 것이 아니라 공백을 포함한 '* '를 찍어줄려면 2배의 길이를 지정해야 한다.

그리고 WHILE문을 그냥 쓰니까 계속 에러가 발생하였다.

MYSQL에서는 WHILE문을 꼭 프로시저 안에 써주어야 하나?

  • SELECT LPAD('ABC',10,'0') // 0000000ABC
  • SELECT RPAD('ABC',10,'0') // ABC0000000
DELIMITER $$ 
CREATE PROCEDURE PrintStars(IN NUM INT) 
BEGIN   
    WHILE (NUM > 0) DO 
        SELECT RPAD('', NUM*2, '* ');
        SET NUM = NUM - 1; 
    END WHILE;
END$$
DELIMITER ; 

CALL PrintStars(20);

 

728x90
LIST

'Programming > MySQL' 카테고리의 다른 글

[MySQL/Hackerrank] Print Prime Numbers  (0) 2021.11.07
[MySQL/Hackerrank] Draw The Triangle 2  (0) 2021.11.07
[MySQL/Hackerrank] Interviews  (0) 2021.11.07
[MySQL/Hackerrank] Symmetric Pairs  (0) 2021.11.06
[MySQL/Hackerrank] Placements  (0) 2021.11.06
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함