Stay Hungry Stay Foolish

전체 글 430

프로그래머스 아픈 동물 찾기 (SELECT/Level 1)

문제 설명 보호소에 들어온 동물 중 아픈 동물의 아이디와 이름을 조회한다. 이때 결과는 아이디 순으로 보여준다. 문제 풀이 SELECT절에 동물의 아이디를 나타내는 ANIMAL_ID와, 이름을 나타내는 NAME을 쓴다. FROM절에 보호소 테이블 ANIMAL_INS을 쓴다. 아픈 동물을 조회하라는 조건이 있으므로, WHERE절에 동물의 상태를 나타내는 INTAKE_CONDITION에서 'SICK'만 찾을 수 있도록 한다. 이때, 'SICK'이라는 문자열만 찾으려면 칼럼명 뒤에 '='를 써주고 해당 문자열을 적는다. 아이디 순으로 조회해야 하므로, ORDER BY를 이용해 정렬한다. 이때, 칼럼명 뒤에 ASC키워드는 디폴드 값이므로 생략한다. Solution SELECT ANIMAL_ID, NAME FRO..

프로그래머스 역순 정렬하기 (SELECT/Level 1)

문제 설명 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회한다. 이때 결과는 ANIMAL_ID 역순으로 보여준다. 문제 풀이 SELECT절에 동물의 이름을 나타내는 ANIMAL_ID와, 보호 시작일을 나타내는 DATETIME을 쓴다. FROM절에 동물의 정보를 담은 테이블인 ANIMAL_INS를 쓴다. ANIMAL_ID(동물 이름)순으로 정렬해야 하므로, 정렬 키워드인 ORDER BY를 이용한다. 이때, 역순으로 보여줘야 하니 칼럼명 뒤에 내림차순을 나타내는 'DESC'를 쓴다. Solution SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC;

프로그래머스 모든 레코드 조회하기(SELECT/Level 1)

문제 설명 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회한다. 문제풀이 조회하라는 문제이니 SELECT문을 쓴다. 모든 정보를 검색할 때는 SELECT절에 '*'를 쓴다. FROM 절에는 동물들의 정보가 담긴 테이블인 ANIMAL_INS를 쓴다. ANIMAL_ID순으로 조회해야 하므로 ORDER BY를 이용한다. 이때 칼럼명 뒤에 오름차순을 나타내는 ASC를 써야 하는데, 디폴트 값이므로 생략해도 된다. Solution SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID;

BOJ 2884번 : 알람 시계 (C언어/Bronze 3)

문제 "45분 일찍 알람 설정하기"이다. 이 방법은 단순하다. 원래 설정되어 있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 현재 상근이가 설정한 알람 시각이 주어졌을 때, 창영이의 방법을 사용한다면, 이를 언제로 고쳐야 하는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 두 정수 H와 M이 주어진다. (0 ≤ H ≤ 23, 0 ≤ M ≤ 59) 그리고 이것은 현재 상근이가 설정한 놓은 알람 시간 H시 M분을 의미한다. 입력 시간은 24시간 표현을 사용한다. 24시간 표현에서 하루의 시작은 0:0(자정)이고, 끝은 23:59(다음날 자정 1분 전)이다. 시간을 나타낼 때, 불필요한 0은 사용하지 않는다. 출력 첫째 줄에 상근이가 창영이의 방법을 사용할 때, 설정해야 하는 알람 시간을 출력한다. (입..

BOJ 7567번 : 그릇 (C언어/Bronze 2)

문제 그릇을 바닥에 놓았을 때 그 높이는 10cm 이다. 그런데 두 개의 그릇을 같은 방향으로 포개면 그 높이는 5cm만 증가된다. 만일 그릇이 서로 반대방향으로 쌓이면 높이는 그릇만큼, 즉 10cm 늘어난다. 그릇을 괄호 기호로 나타내어 설명해보자. 편의상 그릇이 쌓이는 방향은 왼쪽에서 오른쪽이라고 가정한다. 그림에서 ‘(’은 그릇이 바닥에 바로 놓인 상태를 나타내며, ‘)’은 그릇이 거꾸로 놓인 상태를 나타낸다. 만일 그릇이 포개진 모양이 ((((와 같다면 전체의 높이는 25cm가 된다. 왜냐하면 처음 바닥에 있는 그릇의 높이가 10cm이고 이후 같은 방향으로 3개의 그릇이 포개져 있으므로 늘어난 높이는 5+5+5=15 이기 때문이다. ()()와 같은 경우라면 그 높이는 10*4=40cm가 된다. 여..

프로그래머스 하샤드 수 (파이썬/level 1)

문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 조건 - x는 1 이상, 10000 이하인 정수입니다. 입출력 예 #1 - 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다. 예 #2 - 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다. 예 #3 - 11의 모든 자릿수의 합은 2입니다. 11은 2로 나누어 떨어지지 않으므로 11는 하샤드 수가 아닙니다. 예 #4 - 13의 모든 ..

BOJ 5543번 : 상근날드 (C언어/Bronze 4)

문제 주문할 때, 자신이 원하는 햄버거와 음료를 하나씩 골라, 세트로 구매하면, 가격의 합계에서 50원을 뺀 가격이 세트 메뉴의 가격이 된다. 햄버거는 총 3종류 상덕버거, 중덕버거, 하덕버거가 있고, 음료는 콜라와 사이다 두 종류가 있다. 햄버거와 음료의 가격이 주어졌을 때, 가장 싼 세트 메뉴의 가격을 출력하는 프로그램을 작성하시오. 입력 입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가격은 100원 이상, 2000원 이하이다. 출력 첫째 줄에 가장 싼 세트 메뉴의 가격을 출력한다. 예제 입력 800 700 900 198 330 예제 출력 848 문제 설명 햄버거..

BOJ 15849번 : 수학은 체육과목 입니다 (C언어/Bronze 5)

문제 한 변의 길이가 1인 정사각형을 아래 그림과 같이 겹치지 않게 빈틈없이 계속 붙여 나간다. 가장 아랫부분의 정사각형이 n개가 되었을 때, 실선으로 이루어진 도형의 둘레의 길이를 구하시오. 입력 첫 번째 줄에 가장 아랫부분의 정사각형 개수 n이 주어진다. (1 ≤ n ≤ 109) 출력 첫 번째 줄에 답을 출력한다. 예제 입력 3 예제 출력 12 문제 풀이 위 그림처럼 둘레의 길이를 구하면 규칙이 보이는 걸 알 수 있다. Solution #include int main() { long N; scanf("%lld",&N); printf("%lld",N*4); return 0; }

BOJ 2562번 : 최댓값 (C언어/Bronze 2)

문제 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다. 입력 첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다. 출력 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다. 예제 입력 1 3 29 38 12 57 74 40 85 61 예제 출력 1 85 8 문제 설명 9개의 입력값에서 최댓값과 그 최댓값이 몇 번째에 있는지 확인하는 문제이다. 문제 풀이 입력을 받으면서 최댓값을 동시에 구해나가도록..

BOJ 10818번 : 최소, 최대 (C언어/Bronze 3)

문제 N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. 출력 첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다. 예제 입력 1 5 20 10 35 30 7 예제 출력 1 7 35 문제 설명 첫째 줄의 정수의 개수만큼 입력하고 그 중에서 최소와 최대를 찾는 문제다. 문제 풀이 입력 조건에서 모든 정수는 -1,000,000~1,000,000이다. 따라서 최대와 최소를 그에 맞게 초기화해준다. 메모리 낭비를 줄이고자 입력하면서 비..