본문 바로가기

728x90

프로그래머스

(43)
자바 입문 - 연산 산술연산자 부호$(+,-)$, 증감$(++,--)$, 산술$(+,-,*,/,%)$ 연산식 ** x = y + z;** y와 z를 더한 값을 x에 대입한다는 것을 의미 =과 + 는 연산자 = 은 대입연산자 이고, + 산술연산자 이다. y와 z 는 피연산자 이다. x = y+ z 는 연산식이다. package javaStudy; public class OperatorExam { public static void main(String[] args) { int i1 = -5; int i2 = +i1; int i3 = -i1; System.out.println(i1); // >>> -5 System.out.println(i2); // >>> -5 System.out.println(i3); // >>> 5 int ..
자바 입문 - 변수 변수 : 값을 저장할 수 있는 메모리의 공간 package javaStudy; public class VariableExam { public static void main(String[] args) { int count; count = 10; count = 20; System.out.println(count); // >>> 20 //count = 11.1; /* int : 정수형 * double : 실수형 * String : 문자열 */ double avg = 11.1; String name = "camel case"; /* 변수명 - camel case * 변수명의 맨 앞에는 소문자가 오고 * 두 단어 이상의 결합인 경우 * 따라오는 단어의 첫 문자는 대문자로 구분지어 준다. */ int totalCo..
자바 입문 - 깃허브 연동 Java를 설치, 실행, Git 연결을 했습니다. 자바의 특징 C와 C++언어의 문법을 기본으로 차용하여 개발된 C와 C++에 비해 쉬운 언어이다. 자바는 JVM() 만 있으면 윈도우, 리눅스, 맥등 어떤 플랫폼에서도 실행이 가능$($플랫폼에 독립적이다.$)$ 객체지향 언어이다. 메모리 관리를 자동으로 해준다.$($Garbafe Collector$)$ https://www.oracle.com/java/technologies/downloads/ -> 자바 설치 저는 Windows를 사용하기 때문에 x64 MSI Installer를 설치했고, 시스템 속성 - 고급 - 환경변수에 JAVA_HOME이라는 변수 이름에 C:\Program Files\Java\jdk-번호 설치한 경로를 변수 값으로 저장했습니다. 그..
[프로그래머스] Lv.1 소수 찾기 [Python] 1~n 사이의 소수 개수 구하기 더보기 문제 설명 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. $($1은 소수가 아닙니다.$)$ 제한 조건 n은 2이상 1000000이하의 자연수입니다. https://school.programmers.co.kr/learn/courses/30/lessons/12921 에라토스테네스의 체를 이용해서 풀었습니다. 소수의 배수를 제거함으로써 소수만 남기는 방법 n의 제곱근 까지만 위 방법으로 체로 거르면 n까지의 소수를 모두 구할 수 있습니다. def solution(n): s = [0, 0] + [1] * (n-1) for i in range(2, int(n**...
[프로그래머스] Lv.1 덧칠하기 [Python] 가로 n 미터 벽, 가로 m미터 롤러와 페인트가 벗겨진 구간의 정보가 담긴 배열이 주어질 때, 최소 롤러 사용 횟수를 구하는 문제 롤러 1번 사용으로 벽의 가로 m미터가 모두 칠해짐 $($세로를 다 훑는다고 생각하면 됨$)$ 더보기 문제 설명 어느 학교에 페인트가 칠해진 길이가 n미터인 벽이 있습니다. 벽에 동아리 · 학회 홍보나 회사 채용 공고 포스터 등을 게시하기 위해 테이프로 붙였다가 철거할 때 떼는 일이 많고 그 과정에서 페인트가 벗겨지곤 합니다. 페인트가 벗겨진 벽이 보기 흉해져 학교는 벽에 페인트를 덧칠하기로 했습니다. 넓은 벽 전체에 페인트를 새로 칠하는 대신, 구역을 나누어 일부만 페인트를 새로 칠 함으로써 예산을 아끼려 합니다. 이를 위해 벽을 1미터 길이의 구역 n개로 나누고, 각 구역..
[프로그래머스] Lv.1 실패율 [Python] 주어진 스테이지 별 플레이어 수를 통해 실패율이 높은 순서대로 스테이지를 정렬한 배열 만드는 문제 더보기 문제 설명 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전..
[프로그래머스] Lv.1 [1차] 다트 게임 [Python] 주어진 규칙에 따라 다트 게임 점수 총합을 구하는 문제 더보기 문제 설명 다트 게임 카카오톡에 뜬 네 번째 별! 심심할 땐? 카카오톡 게임별~ 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single$($S$)$, Double$($D$)$, Triple$($T$)$ 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제..
[프로그래머스] Lv.1 기사단원의 무기 [Python] - 약수의 개수 주어진 number에 대해서 1~n까지의 수의 약수의 개수의 총합을 구하는 문제 주어진 limit을 초과한 약수의 개수는 그 값 대신 주어진 power로 치환해서 총합을 구해야 함 더보기 문제 설명 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. 예를 들어, 15번으로 지정된 기사단원은 15의 약수가 1, 3, 5, 15로 4개 이므로, 공격력이 4인 무기를 ..
[프로그래머스] Lv.1 로또의 최고 순위와 최저 순위 [Python] 6개의 숫자 중 모르는 번호는 0을 주어졌을 때, 최고 순위와 최저 순위를 구하는 문제 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 더보기 문제 설명 로또 6/45$($이하 '로또'로 표기$)$는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. $($실제로 사용되는 로또 순위의 결정 방식과는 약간 다르지만, 이 문제에서는 지문에 명시된 대로 로또 순위를 결정하도록 합니다. $)$ 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 로또를 구매한 민우..
[프로그래머스] Lv.1 올알이[2] [Python] 발음 가능한 옹알이로만 조합해서 발음 할 수 있는 단어의 개수를 구하는 문제 연속된 옹알이는 못 함 더보기 문제 설명 머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 30 문자열은 알파벳 소문자로만 이루어져 있습니다. https://school.programmers.co.kr/..
[프로그래머스] Lv.1 동물1 [SQL] 문제 설명 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_I..
[프로그래머스] Lv.1 숫자 짝꿍 [Python] 두 수의 공통된 숫자를 그 공통된 개수만큼 가져와 가장 큰수를 만드는 문제 더보기 문제 설명 두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X, Y의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다. X, Y의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다. 예를 들어, X = 3403이고 Y = 13203이라면, X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 3, 0, 3으로 만들 수 있는 가장 큰 정수인 330입니다. 다른 예시로 X = 5525이고 Y = 1255이면 X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 2, 5..