728x90
반응형

문제풀이(Problem Solving) 326

크레인 인형뽑기 게임, Python3 [프로그래머스]

하루에 1개 아니면 2개씩 풀고 오래 걸리면.. 백준가서 비슷한 것을 풀어보기로 하였다. 문제 설명 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가..

백준 1193번, 분수찾기, Python 3 [BOJ]

음 0.5초에 추가 시간이 없네 ㅎ 문제 무한히 큰 배열에 다음과 같이 분수들이 적혀있다. 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … … 3/1 3/2 3/3 … … … 4/1 4/2 … … … … 5/1 … … … … … … … … … … … 이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. 출력 첫째 줄에 분수를 출력한다. 음 보면 행렬의 행과 열을 맞춘 느낌이다 ㅎ 분수로 위장한 행렬느낌 즉, 분자가 행 분모가..

백준 2292번, 벌집, Python3 [BOJ]

파이썬으로 풀었다. 오 제한 2초다. 문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. 당연히 처음부터 잘 풀면 재미없지 import sys num = int(sys.stdin.readl..

백준 1712번, 손익분기점 , Python3 [BOJ]

파이썬으로 푸는 방식이다. 시간 제한이 0.35초로 그렇게 많지 않다. 문제 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다. 예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다. 노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 생산 대수를 늘려 가다 보면 어느 순간 총 수입(판매비용)이 총 비용(=고정비용+가변비용)보다 많아지게 된다. 최초로 총 수입이 총 비용보다 많아져 이익이 발생하는 지점을 손익분..

[C언어] 기본 함수, 메서드 만들기

https://www.hackerrank.com/challenges/functions-in-c/problem Functions in C | HackerRank Learn how to write functions in C++. Create a function to find the maximum of the four numbers. www.hackerrank.com Function in C 이걸 기반으로 설명한다. 답이야 간단하게 만들었다. a,b,c,d 를 비교하는 것이라 인수들은 다시 배열에 넣어서 for문을 돌려도 되지만 비교 개수가 작기에 4개만으로 충분했다. 물론 main 함수에서 선언할 수 있다. 그렇지만 main 전에 처리하기를 바라서 main 함수 밖에서 구현하고 메인 함수 전에 선언했다. 메..

[C++] 기본 입력과 출력

https://www.hackerrank.com/challenges/cpp-input-and-output/problem?h_r=next-challenge&h_v=zen Input and Output | HackerRank Learn to take in the input and print the output. Take three number as input and print their sum as output. www.hackerrank.com 이걸 기본으로 배워보자 C와 C++은 거의 같다고 볼 수 있는데 거의.. 같은거지 같지는 않다. 우선 답은 차례대로 알아보자 1. cin >> s >> n; cin 역시 c언어에서는 scanf와 같은 역할을 수행한다고 볼 수 있다. cin은 추출연산자로 >>연산자를..

[C언어] 숫자 입력, 출력하기

https://www.hackerrank.com/challenges/sum-numbers-c/problem Sum and Difference of Two Numbers | HackerRank Get started with data types. www.hackerrank.com 위의 문제에 기반해서 설명할 것이고 답부터 보여주자면 외부에서 input을 받을 때는 scanf()로 쓸 수 있는 것은 국룰이다. 그런데 이제 출력할 때 어떻게 하느냐가 좀 관건이다. int형은 그렇다 치자. 어떻게든 잘 된다. float은 부동 소수점이 포함된 자료형으로 4 라도 4.0000 요따구로 나오는데 %.숫자f로 숫자만큼의 소수점 자리를 자를 수 있다. 이것만 알고 가자 ㅎㅎ

[C언어] 문자, 문자열, 문장 입력으로 받기, Playing With Characters

https://www.hackerrank.com/challenges/playing-with-characters/problem Playing With Characters | HackerRank input character, string and a sentence www.hackerrank.com 이 문제를 기반으로 설명한다. C언어는 흔히 입력을 받을 때, scanf(..., ....) 문장을 쓴다. 그렇지만 이제 한 문자가아닌 더 길어진 문자열, 문장을 받을 때는 다른 방법을 써야 한다. 답부터 말하자면 이렇게 된다. 물론 다른 방법이 많이 있다. 다 scanf()를 이용해서 받았다. 어떻게 활용하는지 알아보자 출력으로 확인할 때 배경지식 문자를 입력받는 방법 1. char 문자 선언 2. scanf("..

728x90
반응형