Home » 연습문제

연습문제

LCD 패널 방식으로 숫자를 표시해보기 (파이썬)

LCD 처럼 숫자를 표시하는 코드를 만들어 보자 크기와 출력할 숫자를 입력받는다. 크기는 LCD 표시 요소 하나의 크기를 가리킨다. (크기는 1~10,  숫자는 0~99,999,999)  가로선은 -, 세로선은 | 문자를 통해서 표현하며, 사이즈만큼 길이가 길어진다. 따라서 하나의 문자를 표시하기 위해서는 가로는 size + 2, 세로는 size * 2 + 3 만큼의 공간이 필요하다. 예시 – 출력: 0123456789. size: 3 — — — — — — — — | | | | | | | | | | | | | | | |… 더 보기 »LCD 패널 방식으로 숫자를 표시해보기 (파이썬)

(연습문제) 리사의 워크북 문제

Lisa의 워크북 문제 https://www.hackerrank.com/challenges/bear-and-workbook n개의 챕터가 있는 워크북이 있고, 이 워크북의 매 페이지는 k 개 문제를 담을 수 있다. 이후에 n 개의 정수를 받는데 이는 각 챕터의 문제 수이다. 각 챕터의 문제는 1번 부터 시작하며, 새로운 챕터는 새 페이지에서 시작한다. 이 때, 문제번호와 페이지번호(1번부터 시작)가 같은 문제를 특별한 문제라고 할 때, 주어진 데이터 내에서 특별한 문제의 개수를 구하라는 내용이다. 풀이 이 문제는 하스켈에서 의외로 쉽게 풀린다. 다음과 같은 순서로 풀어보자. 숫자 x 를 받았을 때, [[1,2,3], [4,5,6], [7]] 과 같이… 더 보기 »(연습문제) 리사의 워크북 문제

(연습문제) 대소문자변환

연습문제 : 대소문자 변환하기 입력받은 문자열의 대소문자를 반전하여 출력하는 프로그램을 작성하시오. 입력받은 각 글자의 문자 코드가 ‘a’ … ‘z’ 사이에 있으면 소문자, ‘A’~’Z’ 사이에 있으면 대문자이다. 그리고 그 변환은 해당 코드값에 a – A를 더하거나 빼주면 된다. 먼저 대소문자의 범위를 찾아보자. print("azAZ".utf8.map(Int.init)) //=> [97, 122, 65, 90] 즉 문자 코드가 97~122 구간에 있으면 소문자, 65~90 구간에 있으면 대문자이다. 소문자->대문자 변환은 32를 빼고, 반대의 변환은 32를 더한다. 문자 코드 값으로 다시 문자를 만드는 방법은 다음과 같다. 문자열은 [Character] 타입으로 만들 수… 더 보기 »(연습문제) 대소문자변환

연습문제(벽과 폭탄)

벽과 폭탄

각 테스트 케이스마다 ‘W’, ‘B’로 이루어진 문자열이 입력된다. B는 폭탄을, W는 벽을 의미하는데, 폭탄이 하나 터지면 폭탄을 중심으로 반경 2칸 이내의 벽이 모두 폭파된다. 이 때 폭탄이 일시에 터졌을 때 폭파되는 벽의 개수를 출력하라. (https://www.hackerearth.com/problem/algorithm/bob-and-bombs-cake-walk/description/)

BWW, BW, WB, WWB에 해당하는 W의 수를 세는 문제이므로, 이는 간단하게 정규식으로 해결할 수 있다.
더 보기 »연습문제(벽과 폭탄)