ez17의 등록된 링크

 ez17로 등록된 티스토리 포스트 수는 44건입니다.

프로그래머스: 해쉬 > 완주하지 못한 선수 (python) [내부링크]

문제 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 풀이 from collections import defaultdict def solution..

프로그래머스: 2019 KAKAO BLIND RECRUITMENT> 실패율 (python) [내부링크]

문제 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 ..

프로그래머스 연습문제: 시저 암호 (python) [내부링크]

문제 풀이 def solution(s, n): answer = "" for i in s: if 97

프로그래머스: 올바른 괄호 (python) [내부링크]

lv2의 문제로 스택에 대한 약간의 이해만 있어도 풀 수 있는 문제이다. def solution(s): answer = True stack = 0 for i in s: if stack < 0: return False if i == '(': stack+=1 else: stack-=1 return True if stack == 0 else False 괄호가 소괄호 '()'만 입력으로 들어오니 이런식으로 짜주면 된다.

프로그래머스: 단속 카메라 (python) [내부링크]

from collections import deque def solution(routes): answer = 0 # 먼저 빠져나가는 순서대로 정렬 routes.sort(key=lambda a : a[1]) # 만약 route[i][1] 번째 있는 것을 고른다 rqueue = deque(routes) while rqueue: x, y = rqueue.popleft() answer +=1 if not rqueue: break while rqueue: if rqueue[0][0]

파이썬에서 최대공약수(gcd), 최소공배수(lcm) 구현 방법 정리 [내부링크]

재귀로 구현 def gcd(x, y): if(y==0): return x else: return gcd(y,x%y) def lcm(x,y): return (x*y)//gcd(x,y) 반복문으로 구현 def gcd(x, y): while(x): x, y = y, x % y return x def lcm(x,y): return (x*y)//gcd(x,y) 람다함수로 구현 gcd = lambda a,b : b if not a%b else gcd(b, a%b) lcm = lambda a,b : a*b//gcd(a,b) 파이썬 내장함수 이용 from math import gcd, lcm x, y = map(int, input().split()) print(gcd(x,y)) print(lcm(x,y)) ※주의※ l..

[BOJ, 백준] 1927 - 최소 힙(Python) [내부링크]

https://www.acmicpc.net/problem/1927 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 문제 널리 잘 알려진 자료구조 중 최소 힙이 있다. 최소 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오. 1. 배열에 자연수 x를 넣는다. 2. 배열에서 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 입력 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) ..

프로그래머스 연습문제: 두 개 뽑아서 더하기 (python) [내부링크]

from itertools import combinations def solution(numbers): s = set() for x in combinations(numbers, 2): s.add(sum(x)) answer = sorted(list(s)) return answer combinations를 썼지만 이거를 쓰지 않고 이중 for문으로 돌아서 풀어도 쉽게 풀린다.

프로그래머스 연습문제: 음양 더하기(python, java) [내부링크]

파이썬 def solution(absolutes, signs): answer = 0 for i in range(len(absolutes)): if signs[i]: answer += absolutes[i] else: answer -= absolutes[i] return answer 자바 class Solution { public int solution(int[] absolutes, boolean[] signs) { int answer = 0; for (int i=0; i

프로그래머스 연습문제: 정수 내림차순으로 배열하기 (java) [내부링크]

import java.util.*; class Solution { public long solution(long n) { System.out.println(); String s = Long.toString(n); char[] chars = s.toCharArray(); Arrays.sort(chars); String temp = ""; for (int i = 0; i< s.length(); i++){ temp+=chars[s.length()-1-i]; } Long answer = Long.parseLong(temp); return answer; } } String으로 바꾸기, Char array로 바꾸기, sort, reverse, Long형식으로 변환 위의 순서대로 해주면 된다.

프로그래머스 연습문제: 문자열 내 p와 y의 개수 (python) [내부링크]

def solution(s): p=0;y=0 for i in s: if i == 'p' or i =='P': p += 1 elif i =='y' or i =='Y': y += 1 return False if p-y else True 문자열 내에서 p와 y의 개수를 세어주고서 같은지 다른지 확인해주면 된다.

프로그래머스 연습문제: 정수 제곱근 판별 (python) [내부링크]

def solution(n): return (int(n ** 0.5) + 1) ** 2 if n == int(n ** 0.5) ** 2 else -1 삼항 연산자를 이용하면 한줄로 적을 수 있다.

프로그래머스 연습문제: 자연수 뒤집어 배열로 만들기 (python) [내부링크]

def solution(n): return list(reversed(list(map(int, list(str(n)))))) str로 변환, 리스트로 변환.,int로 변환, 리스트 만들기, 뒤집기 이 순서대로 해주면 된다

프로그래머스 연습문제: 자릿수 더하기 (java, python) [내부링크]

Java import java.util.*; public class Solution { public int solution(int n) { int answer = 0; String s = Integer.toString(n); for(char c : s.toCharArray()){ answer += (int)c - 48; // ascii code } return answer; } } Python3 def solution(n): answer = 0 for x in str(n): answer += int(x) return answer 확실히 파이썬이 형변환에 있어서 자유로워서 문제 풀기는 쉽다.

프로그래머스 연습문제: 약수의 합 (java) [내부링크]

class Solution { public int solution(int n) { int answer = 0; for (int i =1; i< (int)Math.pow(n,0.5)+1; i++){ if (n % i == 0){ if (i == n / i) answer -= i; answer += i; answer += n / i; } } return answer; } } 자바로 코테 연습 혹시 모르니까 조금만 해야겠다

프로그래머스 연습문제: 평균 구하기 (python, java) [내부링크]

def solution(arr): return sum(arr)/len(arr) import java.util.stream.IntStream; class Solution { public double solution(int[] arr) { return (double)IntStream.of(arr).sum() / arr.length; } }

프로그래머스 연습문제: 짝수와 홀수 (python) [내부링크]

def solution(num): return "Even" if not(num % 2) else "Odd" 삼항연산자 쓰면 길게 쓰지 않고 간단하다. 간단한 문제지만 level1은 다 풀어볼려고...

AWS Certified Cloud Practitioner 자격증 온라인 시험 합격 후기 [내부링크]

이틀전인 10월 7일에 시험에 응시해서 자격증을 땄습니다. 이 자격증을 딸 계획은 딱히 없었지만 저번달에 AWS Certified Cloud Practitioner challenge를 진행햐여 신청을 하면 50%할인 바우처를 제공하였기에 준비하게 되었습니다. 시험 준비 기간 원래 저는 aws associate developer 자격증을 취득하려고 준비했지만 이번 challenge에서 50% 할인 바우처를 제공해주었기 때문에 pratitioner자격증을 준비한 것이였습니다. 그래서 어느정도 기본적인 aws에 대한 개념은 이미 탑재해 놓고 있었습니다. associate developer 시험과 범위가 중복되는 부분이 있었지만 AWS Certified Cloud Practitioner시험을 본격적으로 준비하게..

AWS Certified Cloud Practitioner (CLF-C01) examtopics 문제 모음 오답노트 [내부링크]

examtopics.com 문제를 풀어보고서 틀린문제와 헷갈리는 문제를 정리한 것 입니다. Free & Accurate Amazon AWS Certified Cloud Practitioner Practice Questions | ExamTopics Free & Accurate Amazon AWS Certified Cloud Practitioner Practice Questions | ExamTopics www.examtopics.com Question #18 A company wants to migrate its workloads to AWS, but it lacks expertise in AWS Cloud computing. Which AWS service or feature will help the ..

[BOJ, 백준] 11656 - 접미사 배열 (Python) [내부링크]

https://www.acmicpc.net/problem/11656 문제 접미사 배열은 문자열 S의 모든 접미사를 사전순으로 정렬해 놓은 배열이다. baekjoon의 접미사는 baekjoon, aekjoon, ekjoon, kjoon, joon, oon, on, n 으로 총 8가지가 있고, 이를 사전순으로 정렬하면, aekjoon, baekjoon, ekjoon, joon, kjoon, n, on, oon이 된다. 문자열 S가 주어졌을 때, 모든 접미사를 사전순으로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. 출력 첫째 줄부터 S의 접미사를 사전순으로 한 줄에 하나씩 출력한다. 예제 입출력 ..

AWS S3와 CloudFront를 이용한 React 배포 방법 [내부링크]

먼저 S3와 클라우드 프론트가 무엇인지 알고 있다는 전제하에 진행하도록 하겠습니다. S3와 CloudFront 대한 설명은 밑에 자세히 나와있습니다. S3의 내용: Amazon S3 비용 등 | Seagate 대한민국 Amazon S3 또는 Amazon Simple Storage Service는 장치 내에서 중요한 정보를 저장하고 복구하는 데 도움이 되는 간소화된 객체 스토리지입니다. 자세히 보기. www.seagate.com CDN 서비스 | CloudFront | Amazon Web Services 통합된 요청, 사용자 지정 가능한 요금 옵션, AWS 오리진에서 데이터 송신 시 무료 요금으로 비용을 절감합니다. aws.amazon.com IAM사용자 추가 및 권한 설정 AWS 서비스 검색창에 IAM을..

[BOJ, 백준] 10425 - 피보나치 인버스 (Python) [내부링크]

https://www.acmicpc.net/problem/10425 문제 Fn={0if n = 0;1if n = 1;Fn−1+Fn−2if n > 1. 피보나치 수는 수학에서 위의 점화식으로 정의되는 수열이다. 피보나치 수는 0과 1로 시작하며, 다음 피보나치 수는 바로 앞의 두 피보나치 수의 합이 된다. n = 0, 1,...에 해당하는 피보나치 수는 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946… 이다. 프로그래밍 실습에서 문제 중 n을 입력 받았을 때 Fn의 값을 출력하는 문제가 자주 등장한다. 실습을 하고 있던 희원이는 문득 이 문제가 너무 쉽다고 생각했다. 희원이는 실습 도..

nohup 명령어 사용법 정리 [내부링크]

nohup java -jar filename.jar & 최근에 AWS EC2를 통해서 웹을 배포할려고 했는데 세션을 종료하면 서버가 끊기게 되는 것을 알고서 명령어를 찾아봤다. docker-compose를 쓴다면 -d 옵션을 통해서 세션을 종료하더라도 계속해서 실행시킬 수 있다. 하지만 dokcer없이도 그냥 실행 시킬려명 어떻게 해야할까? 그럴 때에는 nohup명령어를 사용해주면 된다. 이렇게 해주면 된다. 예를 들어서 장고를 실행시킬려면 아래와 같이 nohup python3 manage.py runserver 0:8000 & 스프링부트를 실행시킬려면 아래와 같이 명령어를 입력해주면 된다. nohup [실행하고자 하는 파일] & 그렇다면 로그는 어디서 볼 수 있는 것일까?? 위와 같이 명령어를 쳤으면 ..

내가 보려고 정리한 리눅스 기본 명령어 모음 [내부링크]

pwd: print working directory ls: 목록 보여주기 option -l -> 자세히 보여준다 -a -> 숨김파일 포함한 전체 파일 cd: change directory 현재 위치한 폴더를 변경해준다 chmod: 디렉토리, 파일 등의 권한을 변경 ls -l 했을 때 나오는 rwx는 read, write, excute를 할 수 있는 user, group, other의 권한을 의미한다. chmod 664 a.out -> 이런식으로 하는것이 이진수로 표현하여 권한부여 가능 chmod u+r / chmod u-w ->user에게 read권한 부여, user에게 write권한 제거 mkdir: make directroy touch file: file만들기 rm -f file: 파일 제거 rm -..

JPA 영속성 컨텍스트(Persistence Context), 플러쉬(flush)란? [내부링크]

영속성 컨텍스트(Persistence Context)란? 영속성 컨텍스트란 엔티티를 영구 저장 하는 환경 이라는 뜻이다. 애플리케이션이 데이터베이스에서 꺼내온 객체를 보관하는 역할을 한다. 영속성 컨텍스트는 엔티티 매니저( Entity Manager )를 통해 엔티티를 조회하거나 저장할때 엔티티를 보관하고 관리한다. 밑에는 영속성 컨텍스트를 통해 벌어지는 일들을 정리해 보았다. 쿼리 실행 시점 Member member = new Meber(); member.setName("hi"); em.persist(member); logger.info("EntityManager 호출함"); // member 영속화 tx.commit(); logger.info("EntityTransaction.commit 호출함");..

[BOJ, 백준] 11502 - 카드 구매하기 (Python) [내부링크]

https://www.acmicpc.net/problem/11502 문제 요즘 민규네 동네에서는 스타트링크에서 만든 PS카드를 모으는 것이 유행이다. PS카드는 PS(Problem Solving)분야에서 유명한 사람들의 아이디와 얼굴이 적혀있는 카드이다. 각각의 카드에는 등급을 나타내는 색이 칠해져 있고, 다음과 같이 8가지가 있다. 전설카드 레드카드 오렌지카드 퍼플카드 블루카드 청록카드 그린카드 그레이카드 카드는 카드팩의 형태로만 구매할 수 있고, 카드팩의 종류는 카드 1개가 포함된 카드팩, 카드 2개가 포함된 카드팩, ... 카드 N개가 포함된 카드팩과 같이 총 N가지가 존재한다. 민규는 카드의 개수가 적은 팩이더라도 가격이 비싸면 높은 등급의 카드가 많이 들어있을 것이라는 미신을 믿고 있다. 따라서..

[BOJ, 백준] 1038 - 감소하는 수 (Python) [내부링크]

https://www.acmicpc.net/problem/1038 문제 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 출력하는 프로그램을 작성하시오. 0은 0번째 감소하는 수이고, 1은 1번째 감소하는 수이다. 만약 N번째 감소하는 수가 없다면 -1을 출력한다. 입력 첫째 줄에 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄에 N번째 감소하는 수를 출력한다. 예제 입출력 풀이 알고리즘 분류가 백트래킹, 브루트포스로 되어있는데 이것보다는 dp느낌나게 풀었습니다. 먼저 arr배열에다가 1의 자리수인 숫자들을..

진짜 예쁜 키보드 누피 에어 75 갈축 한달 사용후기 (Nuphy Air 75) [내부링크]

이 키보드는 디자인이 사는 이유의 절반 이상을 차지한 키보드였습니다. 이제 구매한지 한달 반정도가 되었는데 사용후기를 작성해볼까 합니다. 구매는 와디즈나 직구가 아닌 네이버 스토어를 통해서 주문했습니다. 최근에 정발하게 되어서 네이버에서도 구매할 수 있게 된 것 같네요. 와디즈 버전이랑 똑같은 제품으로 보입니다. NUPHY AIR75 기계식 키보드! 작은 키보드의 놀라운 스펙! : NUPHY NUPHY AIR75 공식 스토어 smartstore.naver.com 직구버전이랑은 다른 점은 직구버전은 배터리가 2500mAh이지만 여기서 구매하게 된다면 1900mAh입니다. 무슨 인증을 받느라고 이렇게 용량이 낮춰지게 되었다고 하네요. 네이버 스토어 찜하기, 소식받기 쿠폰을 사용하니 17만원 5000원에 구매..

[BOJ, 백준] 1806 - 부분합 (Python) [내부링크]

https://www.acmicpc.net/problem/1806 문제 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. 출력 첫째 줄에 구하고자 하는 최소의 길이를 출력한다. 만일 그러한 합을 만드는 것이 불가능하다면 0을 출력하면 된다. 예제 입출력 풀이 n, s = map(int, input().split()) arr = list(map(in..

[BOJ, 백준] 16928 - 뱀과 사다리 게임 (Python) [내부링크]

https://www.acmicpc.net/problem/16928 문제 뱀과 사다리 게임을 즐겨 하는 큐브러버는 어느 날 궁금한 점이 생겼다. 주사위를 조작해 내가 원하는 수가 나오게 만들 수 있다면, 최소 몇 번만에 도착점에 도착할 수 있을까? 게임은 정육면체 주사위를 사용하며, 주사위의 각 면에는 1부터 6까지 수가 하나씩 적혀있다. 게임은 크기가 10×10이고, 총 100개의 칸으로 나누어져 있는 보드판에서 진행된다. 보드판에는 1부터 100까지 수가 하나씩 순서대로 적혀져 있다. 플레이어는 주사위를 굴려 나온 수만큼 이동해야 한다. 예를 들어, 플레이어가 i번 칸에 있고, 주사위를 굴려 나온 수가 4라면, i+4번 칸으로 이동해야 한다. 만약 주사위를 굴린 결과가 100번 칸을 넘어간다면 이동할..

[BOJ, 백준] 14225 - 부분수열의 합 (Python, 파이썬) [내부링크]

https://www.acmicpc.net/problem/14225 문제 수열 S가 주어졌을 때, 수열 S의 부분 수열의 합으로 나올 수 없는 가장 작은 자연수를 구하는 프로그램을 작성하시오. 예를 들어, S = [5, 1, 2]인 경우에 1, 2, 3(=1+2), 5, 6(=1+5), 7(=2+5), 8(=1+2+5)을 만들 수 있다. 하지만, 4는 만들 수 없기 때문에 정답은 4이다. 입력 첫째 줄에 수열 S의 크기 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 수열 S가 주어진다. S를 이루고있는 수는 100,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 수열 S의 부분 수열의 합으로 나올 수 없는 가장 작은 자연수를 출력한다. 예제 입출력 풀이 # 부분수열의 합 / 14225.py # ..

[BOJ, 백준] 7562 - 나이트의 이동 (Python) [내부링크]

https://www.acmicpc.net/problem/7562 문제 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 있을까? 입력 입력의 첫째 줄에는 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 세 줄로 이루어져 있다. 첫째 줄에는 체스판의 한 변의 길이 l(4 ≤ l ≤ 300)이 주어진다. 체스판의 크기는 l × l이다. 체스판의 각 칸은 두 수의 쌍 {0, ..., l-1} × {0, ..., l-1}로 나타낼 수 있다. 둘째 줄과 셋째 줄에는 나이트가 현재 있는 칸, 나이트가 이동하려고 하는 칸이 주어진다. 출력 각 테스트 케이스마다 나이트가 최..

[BOJ, 백준] 14502 - 연구소 (Python) [내부링크]

https://www.acmicpc.net/problem/14502 문제 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. 새로 세울 수 있는 벽의 개수는 3개이며, 꼭 3개를 세워야 한다. 예를 들어, 아래와 같이 연구소가 생긴 경우를 살펴보자. 2 0 0 0 1 1 0 0 0 1 0 1 2 0 0 1 ..

분할 정복을 통한 pow 구현하기 [내부링크]

저번 글을 통해서 python에서 pow를 어떻게 쓰는지 알아보았는데 파이썬에서의 pow와 math.pow 차이점 파이썬의 pow 파이썬에는 두개의 pow함수가 있다. 하나는 math.pow 또 하나는 내장함수에 있는 pow이다. 그렇다면 이 둘의 차이는 무엇일까??? 내장 pow 일단 그냥 pow를 살펴보자 def pow(base, exp, mod): pow ez17.tistory.com 이 함수를 쓰면 안풀릴 때가 있는 문제가 있다. 왜냐하면 이 함수들은 기본적으로 시간복잡도가 O(n)이기 때문이다. 1629번: 곱셈 (acmicpc.net) 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www...

파이썬에서의 pow와 math.pow 차이점 [내부링크]

파이썬의 pow 파이썬에는 두개의 pow함수가 있다. 하나는 math.pow 또 하나는 내장함수에 있는 pow이다. 그렇다면 이 둘의 차이는 무엇일까??? 내장 pow 일단 그냥 pow를 살펴보자 def pow(base, exp, mod): pow는 이런식으로 정의되어있다. 여기서 세번째 인자인 mod는 생략할 수 있다. 간단한 예로 $15^3mod(11)$을 구한다고 하면 pow(15,3,11) 위와 작성해주면 된다. 그리고 vscode기준 f12를 눌러서 보면 알 수 있겠지만 base,exp의 자료형이 무엇인지에 따라 return값이 바뀌게 된다. exp가 정수 일 때!! 1. base의 자료형이 int이면 return값은 int 2. base의 자료형이 complex(복소수)이면 return값은 c..

JPA 시작하기 [내부링크]

프로젝트 생성 - JAVA 8 - Maven - groupId: jpa-basic - artifactId: ex1-hello-jpa - version: 1.0.0 - H2 Driver pom.xml 생성 ?xml version="1.0" encoding="UTF-8"?> 4.0.0 jpa-basic ex1-hello-jpa 1.0.0 org.hibernate hibernate-entitymanager 5.3.10.Final com.h2database h2 1.4.199 위와 같이 pom.xml을 작성해주도록 한다. persistence.xml 생성 - /META-INF/persistence.xml에다가 생성 - JPA설정 파일 - 스프링을 사용한다면 스프링이 알아서 해주기 때문에 작성할 필요없다. ?xm..

[BOJ, 백준] 14502 - 연구소 (Python) [내부링크]

https://www.acmicpc.net/problem/14502 문제 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. 새로 세울 수 있는 벽의 개수는 3개이며, 꼭 3개를 세워야 한다. 예를 들어, 아래와 같이 연구소가 생긴 경우를 살펴보자. ``` 2 0 0 0 1 1 0 0 0 1 0 1 2 0 ..

[BOJ, 백준] 2580 - 스도쿠 (Python) [내부링크]

https://www.acmicpc.net/problem/2580 문제 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루어진 정사각형 판 위에서 이뤄지는데, 게임 시작 전 일부 칸에는 1부터 9까지의 숫자 중 하나가 쓰여 있다. 나머지 빈 칸을 채우는 방식은 다음과 같다. 1. 각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 2. 굵은 선으로 구분되어 있는 3x3 정사각형 안에도 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 위의 예의 경우, 첫째 줄에는 1을 제외한 나머지 2부터 9까지의 숫자들이 이미 나타나 있으므로 첫째 ..

JPA란 무엇인가? [내부링크]

JPA(Java Persistence API) - 스프링이 제공해주는 것이 아닌 자바에서 제공해주는 ORM 표준 기술이다. - Hibernate, Spring JPA, EcliplseLink 등 과 같은 구현체가 있고 이것의 표준 인터페이스가 JPA이다. - JPA 3.0 버전부터는 JCP에서 이클립스 재단으로 이관이 진행 되면서 Jakarta Persistence API로 이름이 바뀌었다. ORM(Object Relation Mapping) - 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다 * 객체는 객체대로 설계할 수 있게 해준다 * 관계형 데이터베이스는 관계형 데이터 베이스대로 설계한다. - JPA에서는 ORM 프레임워크가 중간에 매핑해준다. - 대중적인 언어에는 OR..

[BOJ, 백준] 14889 - 스타트와 링크 (Python) [내부링크]

https://www.acmicpc.net/problem/14889 문제 오늘은 스타트링크에 다니는 사람들이 모여서 축구를 해보려고 한다. 축구는 평일 오후에 하고 의무 참석도 아니다. 축구를 하기 위해 모인 사람은 총 N명이고 신기하게도 N은 짝수이다. 이제 N/2명으로 이루어진 스타트 팀과 링크 팀으로 사람들을 나눠야 한다. BOJ를 운영하는 회사 답게 사람에게 번호를 1부터 N까지로 배정했고, 아래와 같은 능력치를 조사했다. 능력치 Sij는 i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치이다. 팀의 능력치는 팀에 속한 모든 쌍의 능력치 Sij의 합이다. Sij는 Sji와 다를 수도 있으며, i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치는 Sij와 Sji이..

[BOJ, 백준] 11478 - 서로 다른 부분 문자열의 개수 (Python) [내부링크]

https://www.acmicpc.net/problem/11478 문제 문자열 S가 주어졌을 때, S의 서로 다른 부분 문자열의 개수를 구하는 프로그램을 작성하시오. 부분 문자열은 S에서 연속된 일부분을 말하며, 길이가 1보다 크거나 같아야 한다. 예를 들어, ababc의 부분 문자열은 a, b, a, b, c, ab, ba, ab, bc, aba, bab, abc, abab, babc, ababc가 있고, 서로 다른것의 개수는 12개이다. 입력 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. 출력 첫째 줄에 S의 서로 다른 부분 문자열의 개수를 출력한다. 예제 입출력 풀이 x = input() s = set(x) for i in range(len(..

[BOJ, 백준] 17478 - 재귀함수가 뭔가요? (Python) [내부링크]

https://www.acmicpc.net/problem/17478 문제 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대학교가 자신과 맞는가에 대한 고민을 항상 해왔다. 중앙대학교와 자신의 길이 맞지 않다고 생각한 JH 교수님은 결국 중앙대학교를 떠나기로 결정하였다. 떠나기 전까지도 제자들을 생각하셨던 JH 교수님은 재귀함수가 무엇인지 물어보는 학생들을 위한 작은 선물로 자동 응답 챗봇을 준비하기로 했다. JH 교수님이 만들 챗봇의 응답을 출력하는 프로그램을 만들어보자. 입력 교수님이 출력을 원하는 재귀 횟수 N(1 ≤ N ≤ 50)이 주어진다. 출력 출력 예시를 보고 ..

[BOJ, 백준] 4948 - 베르트랑 공준 (Python) [내부링크]

https://www.acmicpc.net/problem/4948 문제 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼프가 1850년에 증명했다. 예를 들어, 10보다 크고, 20보다 작거나 같은 소수는 4개가 있다. (11, 13, 17, 19) 또, 14보다 크고, 28보다 작거나 같은 소수는 3개가 있다. (17,19, 23) 자연수 n이 주어졌을 때, n보다 크고, 2n보다 작거나 같은 소수의 개수를 구하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 케이스는 n을 포함하는 한 줄로 이루어져 있다. 입력의 마지막..

[BOJ, 백준] 1094 - 막대기 (Python) [내부링크]

https://www.acmicpc.net/problem/1094 문제 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대를 만들려고 한다. 막대를 자르는 가장 쉬운 방법은 절반으로 자르는 것이다. 지민이는 아래와 같은 과정을 거쳐서 막대를 자르려고 한다. 1. 지민이가 가지고 있는 막대의 길이를 모두 더한다. 처음에는 64cm 막대 하나만 가지고 있다. 이때, 합이 X보다 크다면, 아래와 같은 과정을 반복한다. 1. 가지고 있는 막대 중 길이가 가장 짧은 것을 절반으로 자른다. 2. 만약, 위에서 자른 막대의 절반 중 하나를 버리고 남아있는 막대의 길이의..