코딩배우는 학생🧀
[Programmers]소수 만들기 (Summer/Winter Coding(~2018))[Java]
문제 설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 제한사항 nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 입출력 예 nums result [1,2,3,4] 1 [1,2,7,6,4] 4 입출력 예 설명 입출력 예 #1 [1,2,4]를 이용해서 7을 만들 수 있습니다. 입출력 예 #2 [1,2,4]를 이용해서 7을 만들 수 있습니다. [1,4,6]을 이용..
[Programmers]영어 끝말잇기(Summer/Winter Coding(~2018))[Java]
문제설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다. 한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → wheel → land → dream → mother → robot → tank 위 끝말잇기는 다음과 같이 진행됩니다. 1번 사람이 자신의 첫 번째 차례에 tank를 말합니다. 2번 사람이 자신의 첫 번째 차례에 k..
[Programmer] 크레인 인형뽑기게임(2019 카카오 개발자 겨울 인턴십)[Java]
문제설명 게임개발자인 죠르디는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. 죠르디는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 1 x 1 크기의 칸들로 이루어진 N x N 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 5 x 5 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 1 x 1 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데, 이때 바구니의 가장 아..
[Programmers] 스킬트리(Summer/Winter Coding(~2018))[Java]
문제설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더 일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더 와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더 와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유저들이 만든 스킬트리을 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 solution 함수를 작성해주세요. 제한조건 ..
[Git] window에서 PowerShell을 사용한 git 처리(1)
1) window PowerShell 을 열어주고 2) git user.name과 user.email 환경변수를 입력해줍니다(등록시 이후 안해도됨) git config --global user.name "유저이름" git config --global user.email "유저이메일" 3) 사용할 로컬저장소의 루트주소로 찾아갑니다 4) 로컬저장소 등록 및 커밋하기 git init으로 로컬 저장소를 초기화시켜줍니다 Initialized empty Git repository in /주소가 나오고 여기서 git status를 입력하면 git에 untacked된 파일들이 표시되고 이를 staging에 add해주는 작업이 필요합니다. add하기전에..
[Programmers][1차] 프렌즈4블록(2018 KAKAO BLIND RECRUITMENT)[Java]
문제설명 [프렌즈4블록] 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 프렌즈4블록. 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙어있을 경우 사라지면서 점수를 얻는 게임이다. 만약 판이 위와 같이 주어질 경우, 라이언이 2×2로 배치된 7개 블록과 콘이 2×2로 배치된 4개 블록이 지워진다. 같은 블록은 여러 2×2에 포함될 수 있으며, 지워지는 조건에 만족하는 2×2 모양이 여러 개 있다면 한꺼번에 지워진다. 블록이 지워진 후에 위에 있는 블록이 아래로 떨어져 빈 공간을 채우게 된다. 만약 빈 공간을 채운 후에 다시 2×2 형태로 같은 모양의 블록이 모이면 다시 지워지고 떨어지고를 반복하게 된다. 위 초기 배치를 문자로 표시하면..
[Programmers]오픈채팅방(2019 KAKAO BLIND RECRUITMENT)[Java]
문제 설명 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. [닉네임]님이 들어왔습니다. 채팅방에서 누군가 나가면 다음 메시지가 출력된다. [닉네임]님이 나갔습니다. 채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다. 채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다. 채팅방에서 닉네임을 변경한다. 닉네임을 변경할 때는 기존에 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경된다. 예를 들어, 채..
[Programmers] 튜플(2019 카카오 개발자 겨울 인턴십)[Java]
문제설명 셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이라고 하며, 다음과 같이 표현할 수 있습니다. (a1, a2, a3, ..., an) 튜플은 다음과 같은 성질을 가지고 있습니다. 중복된 원소가 있을 수 있습니다. ex : (2, 3, 1, 2) 원소에 정해진 순서가 있으며, 원소의 순서가 다르면 서로 다른 튜플입니다. ex : (1, 2, 3) ≠ (1, 3, 2) 튜플의 원소 개수는 유한합니다. 원소의 개수가 n개이고, 중복되는 원소가 없는 튜플 (a1, a2, a3, ..., an)이 주어질 때(단, a1, a2, ..., an은 자연수), 이는 다음과 같이 집합 기호 '{', '}'를..
[Programmers] [1차]다트게임(2018 KAKAO BLIND RECRUITMENT)[Java]
문제설명 카카오톡에 뜬 네 번째 별! 심심할 땐? 카카오톡 게임별~ 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다. 옵션으로 스타상(*) , 아차상(#)..
[Programmers]키패드 누르기(2020 카카오 인턴십)[Java]
문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4..
깃(git) non-fast-forward 문제 해결방법
에러 현상 github에서 저장소 생성 후 저장소 주소를 remote에 입력(git remote add origin https://github…..)한 뒤, git pull 또는 git merge 명령이 동작하지 않고 git push origin master시 [rejected] master -> master (non-fast-forward) 에러가 발생하는 경우 깃허브에 생성된 원격 저장소와 로컬에 생성된 저장소 간 공통분모가 없는 상태에서 병합하려는 시도로 인해 발생한다. 대충 pull 을 받고 해라 그런말인데 일단 안됨. -->공통분모를 만들어주거나 없어도 병합을 시켜줘야함 git pull origin master --allow-unrelated-histories 상단의 명령어를 통해 병합가능
[프로젝트 2] 유기견 입양 플랫폼 웹사이트
프로젝트 GitHub https://github.com/choipureum/Abandoned_Dogs_Save_Project choipureum/Abandoned_Dogs_Save_Project 2020 KH정보교육원 | :dog2:세미프로젝트 유기견플랫폼 웹 프로젝트입니다 | [NCS]UIUX엔지니어링 및 응용SW엔지니어링 양성과정 - choipureum/Abandoned_Dogs_Save_Project github.com 프로젝트 명 : 유기견 입양 플랫폼 프로젝트 기간 : 2020.05.20~2020.07.02 프로젝트 주요 기능 : 1. 관리자 페이지 메인 : 웹사이트 각종 상태표시, 상태 Progress-bar, 회원가입 차트그래프, 입양률 파이그래프, 입양신청 header 알림벨 ..
[프로젝트 1] 한양대학교 튜터링 매칭 웹페이지
프로젝트 GitHub https://github.com/choipureum/Software_Capstone_Design2_Project choipureum/Software_Capstone_Design2_Project 2020 한양대학교 | 소프트웨어 융합 캡스톤디자인2 튜터링매칭 웹 프로젝트팀입니다 - choipureum/Software_Capstone_Design2_Project github.com 프로젝트 명 : 튜터링 매칭 웹사이트 프로젝트 기간 : 2020.03~2020.06 프로젝트 주요 기능 : 로그인/회원가입/로그아웃 기능 회원정보 수정 커뮤니티(게시판, 댓글) 운 댓글을 통한 매칭시스템 프로젝트 개발환경 : Apache Tomcat 9.0 SpringFramework Mybatis Maven
[PROGRAMMERS Level-4] 보호소에서 중성화한 동물 [Oracle]
문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N)..
[PROGRAMMER Level-4] 입양 시각 구하기(2)[Oracle]
문제 설명 ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE NAME VARCHAR(N) TRUE SEX_UPON_OUTCOME VARCHAR(N) FALSE 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각..
[PROGRAMMERS Level 4] 우유와 요거트가 담긴 장바구니(Summer/Winter Coding(2019)) [Oracle]
문제 설명 CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다. CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가격을 나타냅니다. NAME TYPE ID INT CART_ID INT NAME VARCHAR PRICE INT 데이터 분석 팀에서는 우유와 요거트를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다. 예시 예를 들어 CART_PRODUCTS 테이블이 다음과 같다면 CART_PRODUCTS 테이블 ID CART_ID NA..
[SQL] 변환함수,서식지정자
1. 변환 함수 - 형변환이라고도 한다 - 숫자, 문자, 날짜의 데이터를 서로 형변환 한다. to_number : NUMBER포맷(서식)을 가진 VARCHAR2 -> NUMBER ex)'123' ->123 to_char : NUMBER,DATE -> 원하는 포맷(서식)의 VARCHAR2 to_date : DATE포맷(서식)을 가진 VARCHAR2 -> DATE 1-1 tochar(number) to_char(number) to_char(number,format) 두가지 형태로 사용할 수 있다. **숫자 서식 지정 문자 0 : 숫자가 들어갈 자리를 확보, 남는 자리는 0으로 LPAD한다 9 : 숫자가 들어갈 자리를 확보, 남는 자리는 공백으로 LPAD한다 . : 소수점 구분 문자 추가(정수부, 소수부) ,..
[SQL] 함수(Functions)
1. ORDER BY (정렬) ORDER BY col1, col2...( co1로 정렬, 중복되면 col2로 정렬) **컬럼명 뒤에 ASC, DESC를 추가한다 1-1 NULL을 포함하는 컬럼의 정렬 NULL데이터를 원하는 위치에 정렬시키는 법 NULLS FIRST : NULL값을 처음으로 NULLS LAST : 마지막으로 1 2 SELECT empno, ename, comm FROM emp ORDER BY comm DESC NULLS LAST; SELECT empno, ename, comm FROM emp ORDER BY comm DESC NULLS FIRST,empno; 2. DISTINCT (중복제거) 중복데이터를 제거하는 키워드 이며 SELECT 키워드와 함께쓰인다. SELECT키워드 바로 뒤에 ..
[SQL] 정의와 기본문법
1. SQL 이란? SQL은 Structure Query Language의 준말로 데이터 베이스의 자료에 대한 검색(조회), 관리, DB생성, DBMS객체 관리등을 수행할 수 있는 언어이다. 스크립트 언어로 한줄씩 명령을 수행한다. SQL의 문법 종류는 크게 3가지로 분류된다. 데이터 정의 언어(DDL: Data Definition Language) 데이터 조작 언어(DML: Data Manipulation Language) 데이터 제어 언어(DCL: Data Control Language) 1-1 데이터 정의 언어(DDL) CREATE (데이터베이스 개체의 정의) DROP (데이터베이스 개체 삭제) ALTER (데이터베이스 개체 정의 변경) 1-2 데이터 제어 언어(DCL) GRANT (특정 데이터베이..
[백준/2217번] 로프 [Java]
문제 N(1≤N≤100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만 여러 개의 로프를 병렬로 연결하면 각각의 로프에 걸리는 중량을 나눌 수 있다. k개의 로프를 사용하여 중량이 w인 물체를 들어올릴 때, 각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리게 된다. 각 로프들에 대한 정보가 주어졌을 때, 이 로프들을 이용하여 들어올릴 수 있는 물체의 최대 중량을 구해내는 프로그램을 작성하시오. 모든 로프를 사용해야 할 필요는 없으며, 임의로 몇 개의 로프를 골라서 사용해도 된다. 입력 첫째 줄에 정수 N이 주어진다. 다음 N개의 줄에는 각 로프가 버틸 수 있는 ..