Stay Hungry Stay Foolish

분류 전체보기 426

BOJ 2751번 : 수 정렬하기 2 (C++/Silver 5)

2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 5 5 4 3 2 1 예제 출력 1 2 3 4 5 문제 풀이 알고리즘 라..

1장 머신러닝이란?

머신러닝(Machine Learning)이란? - 규칙을 일일이 프로그래밍 하지 않아도 자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야 - 지능을 구현하기 위한 소프트웨어를 담당하는 핵심 분야 - 보통의 프로그램과 달리 누구도 알려주지 않는 기준을 찾아서 일을 함 대표적인 머신러닝 라이브러리 - 사이킷런(scikit-learn) : 파이썬 API를 사용 Google Colab - 머신러닝을 학습하기 위한 서비스 구글 코랩으로 머신러닝 실습해보기 '생선 분류 문제' - 도미와 빙어를 분류하기(이진 분류 : 2개의 클래스 중 하나를 고르는 문제) 1. 도미와 빙어 데이터 준비 위는 도미와 빙어의 길이 및 무게 데이터를 나타낸 것이다. Bream은 도미를 의미하고, Smelt는 빙어를 의미한다. ..

혼공/머신러닝 2022.07.08

BOJ 2480번 : 주사위 세개 (C언어/Bronze 4)

문제 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로 받게..

Programmers 두 개 뽑아서 더하기 (Python/Level 1)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 입출력 예 numbers result [2, 1, 3, 4, 1] [2 ,3, 4, 5, 6, 7] [5, 0, 2, 7] [2, 5, 7, 9, 12] 문제 설명 입출..

BOJ 10871번 : X보다 작은 수 (C언어/Bronze 5)

문제 정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. 출력 X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다. 예제 입력 10 5 1 10 4 9 2 3 8 5 7 6 예제 출력 1 4 2 3 문제 풀이 수열 A를 입력 받자마자 X와 대소비교를 하고 바로 출력한다. Solution #include int main() { int N, X; scanf("%d %d",&N, &X)..

BOJ 1110번 : 더하기 사이클 (C언어/Bronze 1)

문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오. 입력 첫째 ..

Programmers 상위 n개 레코드 (SELECT/Level 1)

문제 설명 보호소에 가장 먼저 들어온 동물의 이름을 조회한다. 문제 풀이 SELECT문에 동물의 이름(NAME)을 적는다. FROM절에 보호소 테이블인 ANIMAL_INS를 적는다. 가장 먼저 들어온 동물을 조회하는 조건이 있으므로, 보호시작일(DATETIME)이 가장 오래된 것을 찾으면 된다. 이때, DATETIME이 최소인 것을 검색하면 되는데 WHERE절에서는 집계함수를 사용할 수 없다. 따라서 서브 쿼리를 이용한다. 서브 쿼리는 하나의 쿼리문에 포함되어 있는 또 다른 쿼리문이다. 사용하는 방법은 WHERE절에서 칼럼명 뒤에 IN을 적어주고 괄호 안에 다른 쿼리문을 적는다. IN은 괄호 내에서 일치하는 것이 있으면 TRUE로 평가된다. Solution SELECT NAME FROM ANIMAL_IN..

Programmers 여러 기준으로 정렬하기 (SELECT/Level 1)

문제 설명 보호소의 모든 동물의 아이디, 이름, 보호 시작일을 이름 순으로 조회한다. 단, 이름이 같은 동물은 보호 시작을 더 늦게 한 동물을 먼저 보여줘야 한다. 문제 풀이 SELECT절에 동물 아이디(ANIMAL_ID), 동물 이름(NAME), 보호 시작일(DATETIME)을 적는다. FROM절에 보호소 테이블인 ANIMAL_INS를 적는다. 이름 순으로 조회해야 하므로, ORDER BY를 이용해 정렬한다. 이때, 이름(NAME)뒤에 오름차순 키워드인 'ASC'은 디폴드 값이므로 생략한다. 같은 이름의 동물일 경우 보호 시작이 더 늦는 동물을 먼저 보여줘야 하기 때문에 DATETIME은 'DESC'로 검색한다. Solution SELECT ANIMAL_ID, NAME, DATETIME FROM ANI..

프로그래머스 동물의 아이디와 이름 (SELECT/Level 1)

문제 설명 보호소의 모든 동물의 아이디와 이름을 ANIMAL_ID순으로 조회한다. 문제 풀이 SELECT절에 동물의 아이디와(ANIMAL_ID)와 이름(NAME)을 적는다. FROM절에 보호소 테이블인 ANIMAL_INS를 적는다. ANIMAL_ID(동물 아이디)순으로 조회해야 하므로, ORDER BY절을 이용한다. 이때, 칼럼명 뒤에 ASC키워드는 디폴드 값이므로 생략한다. Solution SELECT ANIMAL_ID, NAME FROM ANIMAL_INS ORDER BY ANIMAL_ID; ※ORDER BY절을 적지 않고 코드 실행을 해도, 결과가 오름차순으로 정렬이 되어 있다. 그래서 안 적어도 문제는 없지만 되도록이면 적어주는 게 좋다.

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

문제 설명 보호소의 동물 중 젊은 동물의 아이디와 이름을 조회한다. 이때, 결과는 아이디 순으로 보여준다. 문제 풀이 SELECT절에 동물의 아이디(ANIMAL_ID)와 동물의 이름(NAME)을 적는다. FROM 절에 보호소 테이블인 ANIMAL_INS를 적는다. 젊은 동물을 조회하라는 조건이 있으므로, 동물의 상태를 나타내는 INTAKE_CONDITION에서 'Aged'가 아닌 경우만 뽑도록 한다. 따라서, WHERE절에 칼럼명 뒤에 '같지 않다'의 의미를 지닌 ''키워드를 사용하고 그 뒤에 'Aged'문자열을 적어준다. 아이디 순으로 정렬해야 하므로, ORDER BY절을 이용한다. 이때, 칼럼명 뒤에 써야 하는 오름차순 키워드 'ASC'는 디폴트 값이므로 생략한다. Solution SELECT ANI..

프로그래머스 아픈 동물 찾기 (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은 사용하지 않는다. 출력 첫째 줄에 상근이가 창영이의 방법을 사용할 때, 설정해야 하는 알람 시간을 출력한다. (입..