전체 글 562

[제주코딩베이스캠프] 눈떠보니 코딩테스트 전날 | Python f string 용

age=10 print('제 나이는',age,'입니다') print('제 나이는 {}입니다.'.format(age)) print(f'제 나이는 {age}입니다.') # f-string 용법 for i in range(2,10): for j in range(1,10): print(f'{i} x {j} = {i*j}') import datetime date=datetime.datetime.now() f'{date:%Y-%m-%d-%A}' t=(10,20,30,40) f'{t[0]} X {t[1]}' https://www.inflearn.com/course/%EC%BD%94%EB%94%A9-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%A0%84%EB%82%A0/dashboard 눈떠보니 코딩 테스..

[ERROR 22924] o.h.engine.jdbc.spi.SqlExceptionHelper : Field 'id' doesn't have a default value

id 필드가 기본값을 가지고 있지 않다는 오류 메세지가 떴다. 그래서 살펴보니 JPA에서만 자동 생성하도록 옵션을 넣어주고, 정작 DB에서는 자동 생성하는 기능을 안 붙여줬기 때문이라고 한다. id의 AI 체크박스가 체크되어 있지 않아 발생한 문제.. AI가 auto_increment의 약자이다. 이 속성을 사용하면 insert문을 내보낼때마다 자동으로 id값이 증가한다. (레코드의 값이 중복되지 않고 1씩 증가한다) 이 속성이 많이 사용되는 경우는 위 경우와 같이 테이블 제일 첫 번째 칼럼이다. 왜냐하면, 테이블 첫 칼럼은 테이블 레코드에 대한 고유값을 지정해서 대부분 사용하기 때문이다. 이 에러 떄문에 5시간 넘게 헤매고.... CRUD 기능 중에 C에서 막히니까 RUD 강의로도 못 넘어가는 상황이 ..

[Spring Boot] HTTP Method - Get,Post,Put/Patch

HTTP? HTTP = HyperText Transfer Protocol 클라이언트(웹 브라우저)와 서버간에 의사소통을 가능하게 해주는 request-response 프로토콜 HTTP Method CRUD OK ERROR Get Read 200 404 (Not Found) 409 (Conflict) Post Create 200 404 (Not Found) Put Update / Replace 200 404 (Not Found) 405 (Method Not Allowed) Patch Update / Modify 200 404 (Not Found) 204 (No content) 405 (Method Not Allowed) Delete Delete 200 404 (Not Found) 405 (Method No..

[제주코딩베이스캠프] 눈떠보니 코딩테스트 전날 | Python 30분 요약강좌 - 2부

for i,j in enumerate(range(100,1000,100),1): print(i,j) ''' 1 100 2 200 3 300 4 400 5 500 6 600 7 700 8 800 9 900 ''' enumerate 함수 : 리스트가 있는 경우 순서와 리스트의 값을 전달하는 기능을 가진다. enumerate은 열거하다라는 뜻이다. 즉, 순서가 있는 자료형을 입력으로 받아서 인덱스 값을 포함하는 enumerate 객체를 리턴한다. 어떤 데이터를 가지고 와서 번호를 매길 때 주로 사용한다. for i in range(10): pass #아무 기능을 하지 않지만, 나중에 코드를 사용할거라는 표시, 에러 방지 표시 https://www.inflearn.com/course/%EC%BD%94%EB%94..

[제주코딩베이스캠프] 눈떠보니 코딩테스트 전날 | Python 30분 요약강좌 - 1부

# type, dir, upper, lower, strip, lstrip, rstrip, split, join, format s='hello world' print(type(s)) print(dir(s)) #upper,lower print(s.upper()) # 대문자 print(s.lower()) # 소문자 s.count('l') # s에 l의 개수 출력 #strip, lstrip, rstrip ss=' hello world ' print(ss.strip()) #양쪽 공 공백 삭제 print(ss.lstrip()) #왼쪽 공백 삭제 print(ss.rstrip()) #오른쪽 공백 삭제 #split, join new_ss=ss.split('') #공백을 기준으로 단어를 나눠서 리스트 형태로 반환해준다. ..

[제주코딩베이스캠프] 눈떠보니 코딩테스트 전날 | 깊이우선 탐색과 너비우선 탐색_이론

# DFS, Depth First Search (깊이우선탐색) - stack : 현재 정점에서 한 방향으로 가면서 검사하기 막힌 정점은 포기하고 마지막에 따라온 간선으로 되돌아간다. #BFS, Breadth First Search (너비우선탐색) - queue 가까운 정점을 먼저 방문하고 먼 정점은 나중에 방문한다. 이제 다음 카테고리 강좌로 넘어가기!! https://www.inflearn.com/course/%EC%BD%94%EB%94%A9-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%A0%84%EB%82%A0/dashboard 눈떠보니 코딩 테스트 전날 - 인프런 | 강의 다가오는 코딩 테스트에 대비하여 기본적으로 알아야 할 개념을 복습하고 Python, Javascript를 통해 알고..

[n2458] 키순서 in python

https://www.acmicpc.net/problem/2458 2458번: 키 순서 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 www.acmicpc.net (처음 든 생각) 그래프를 사용해야하는 것 같긴한데.. 방향그래프.. 서로 연결되어 있는 부분을 이용해야할 것 같다..? 자신에게 오는 화살표는 자신보다 키가 작은 애들한테서 오는 화살표 자신에게서 나가는 화살표는 자신보다 키가 큰 애들에게 나가는 화살표 이 화살표의 개수가 총 n-1이면, 해당 노드의 키순서는 알 수 있다. 그래서 answer+=1을 해주면 된다. dp를 이용해야하는 건가? dp가..

[n14921] 용액 합성하기 in python

https://www.acmicpc.net/problem/14921 14921번: 용액 합성하기 홍익대 화학연구소는 다양한 용액을 보유하고 있다. 각 용액은 -100,000,000부터 100,000,000사이의 특성 값을 갖는데, 같은 양의 두 용액을 혼합하면, 그 특성값은 두 용액의 특성값의 합이 된다. 당 www.acmicpc.net (처음 든 생각) dp를 이용해서 푸는 문젠가했는데 그건 아닌 것 같았다. min을 이용해서 0에 가까운 숫자를 찾으면 되는데, 위 링크에 나와있는 예제2번을 풀 때 양수로 출력되는 문제가 발생했다. 따라서 if abs(result) > abs(now) 구문을 넣어주고, result에는 원래의 값만을 집어넣었다. (풀이) import sys n = int(sys.stdi..

[n7579] 앱 in python

https://www.acmicpc.net/problem/7579 7579번: 앱 입력은 3줄로 이루어져 있다. 첫 줄에는 정수 N과 M이 공백문자로 구분되어 주어지며, 둘째 줄과 셋째 줄에는 각각 N개의 정수가 공백문자로 구분되어 주어진다. 둘째 줄의 N개의 정수는 현재 활 www.acmicpc.net (처음 든 생각) 최소비용,,, BFS인가,,, 사실 잘 모르겠다..! 그래서 고민 끝에 풀이를 봤다. (풀이 너무 찾아보는 거 아닌가 싶지만, 아무리 고민해도 모르겠어서 그냥 보고 배우는 게 낫겠다싶었다) BFS가 아니라 DP 이용하는 것! DP는 넘 어렵다아... 피보나치 수열 풀 땐 알겠는데,,, 이 문제에선 도저히 모르겠... (DP 이용 풀이) 필요한 메모리 M 바이트를 확보하기 위한 앱 비활성..

[n17478] 재귀함수가 뭔가요? in python

https://www.acmicpc.net/problem/17478 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net 문제 제목만 봐도 알 수 있는 유형 > 재귀함수로 푸는 문제 재귀횟수 : N 위 예시를 보면, 재귀횟수가 2이다. recursion(2) 호출 recursion(1) 호출 recursion(0) 호출 print('_' * (4 * (n - cnt))+ "라고 답변하였지.") : n-cnt=2 print('_' * (4 * (n - cnt))+ "라고 답변하였지.") : n-cnt=1 print(..

[n5568] 카드 놓기 in python

https://www.acmicpc.net/problem/5568 5568번: 카드 놓기 예제 1의 경우 상근이는 11, 12, 21, 112, 121, 122, 212를 만들 수 있다. www.acmicpc.net (처음 든 생각) 이건 완탐으로 풀어야하는 것 같긴 한데.. 수가 커질수록 경우의 수가 많아지고 ㅠㅠ 이럴 땐 어떻게 해야 할 지 모르겠다 일단 완탐으로 풀어보자! n개의 카드 중에 k개를 선택하는 경우의 수를 다 써봐도 규칙이 보이지 않았다 ㅠㅠ 그래서 결국 인터넷 참고! (풀이 : itertools 라이브러리) n개의 카드 중에 k개를 선택하는 거 > 순열! 순열을 떠올리지 못했다. 떠올렸더라도 permutations를 사용해본 적이 별로 없어서 풀지 못했던 문제 지금이라도 익혀두자! s..

[n18352] 특정 거리의 도시 찾기 in python

(처음 든 생각) BFS 같다.. 느낌이 1번 도시에서 2번, 3번 도시를 가야하고? 2번 도시에서 갈 수 있는 곳이 있는지, 조건을 부합하는 지 확인한 뒤 3번 도시도 확인해야 하니까!! (처음 푼 풀이) : BFS 처음에 이 문제도 EOFError를 사용해야 하는 줄 알고 좀 헤맸다. 문제 좀 잘 읽어볼 것.. BFS 알고리즘이니까, 큐를 이용해서 풀어야한다. 위 예제를 생각해보면, k=2 이다. (거리정보) 1번 도시에서 갈 수 있는 도시는 2번, 3번 따라서 큐에 2번, 3번을 넣고 방문처리를 해준다. 이때 방문처리 리스트를 통해 답을 구할 것이다. 처음엔 set()을 이용했는데, 시간초과가 떠서 ㅠㅠ popleft로 큐에서 데이터를 꺼내온다. (2번) 2번에서 갈 수 있는 도시는 3번, 4번 하..

[제주코딩베이스캠프] 눈떠보니 코딩테스트 전날 | 트리와 그래프

# 트리 - 나무를 거꾸로 뒤집어 놓은 모양으로 뿌리, 잎, 가지로 구성되어 있는 탐색을 위한 자료구조이다. - None와 Edge를 이용해 데이터를 표현한다. 차수는 노드의 자식 노드 개수를 의미한다. (1) 이진트리 : 자식노드가 최대 두개인 노드들로 구성된 트리로, 이진트리에는 포화이진트리와 완전이진트리 등이 있다. - 포화이진트리 : 모든 노드가 두 개의 자식 노드를 가지고 모든 잎 노드가 동일한 깊이(레벨)을 갖는다. - 완전이진트리 : 마지막 레벨을 제외한 나머지 노드들의 레벨이 완전히 채워져있고, 마지막레벨에서는 왼쪽부터 노드가 순서대로 채워져있다. 탐색을 위한 이진트리! 왼쪽 자식 노드는 나보다 작고, 오른쪽 자식은 나보다 크다는 특징이 있다. * 이진트리의 순회 * (1) 전위순회 : 루..

[n15486] 퇴사 2 in python

https://www.acmicpc.net/problem/15486 15486번: 퇴사 2 첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000) www.acmicpc.net (처음 든 생각) 항상 완탐부터 생각난다.... 하지만 딱 떠오르는 생각이 없었다. 아무리 생각해봐도 모르겠어서 인터넷 풀이 검색.. (풀이 : dp) 처음에 input()으로 입력값을 받았는데 시간초과, sys.stdin.readlin() 사용하니까 통과함! 이 문제는 완탐으로 하면 시간초과가 뜬다 연산개수가 150만개라서..! 생각해야 하는 부분 1. 해당 날짜에..

[n4779] 칸토어 집합 in python

pc.net/problem/4779 4779번: 칸토어 집합 칸토어 집합은 0과 1사이의 실수로 이루어진 집합으로, 구간 [0, 1]에서 시작해서 각 구간을 3등분하여 가운데 구간을 반복적으로 제외하는 방식으로 만든다. 전체 집합이 유한이라고 가정하고, www.acmicpc.net (처음 든 생각) 3등분씩 진행하면, N을 3으로 나눈 값만큼 계속 쪼개지는구나... 뭔가 트리 모양처럼 쪼개지네? 반씩 나눠지는 걸 보니.. 재귀함수를 써야하나..? -의 개수가 1개 남을경우까지만 탐색을 해야하니까 재귀함수를 한 번 써봐야겠다 배열을 쓸까 아니면 문자열로 쓸까 고민하다가 그냥 배열 씀.. (문자열 하다가 무슨 이유 때문인지 모르겠지만 그만둠) (처음 풀이) 입력값을 얼마나 넣는 지 알 수 없기 때문에 try..

[n3273] 두수의 합 in python

https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net (처음 든 생각) 사실 완탐이 가장 먼저 떠올랐다. 그래서 문제를 풀어보려했으나, 뭔가 더 효율적인 방법이 있을 것 같았다. 그래서 고민해보다가 투포인터를 떠올리게 되었다. 투포인터의 개념은 떠올렸지만 아직 구현이 미숙해서 리스트 정렬을 해야하는 걸 까먹었다..ㅎ 그래서 계속 풀다가 도저히 안 풀려서 풀이를 찾아보니 정렬을 먼저 해야하는 것이..

[프로그래머스] 거리두기 확인하기 in python

(처음 든 생각) P가 있는 위치를 중심으로 확인하면서 넘어가려고 했다. 0~7번 자리에 P가 있으면 P 주위에 파티션이 있는지 확인 (만약 P가 아닌 O나 파티션이 있으면 일단 넘어감 어차피, P가 있으면 그 주위 탐색을 하게 될테니까?) dx, dy는 위 그림의 순서처럼 선언해놨다. P 주위에 또 다른 P가 대각선으로 있을때를 생각해봤다. P1일 경우, 4,6번 방향으로 파티션이 있으면, 조건에 위배되지 않는다. P2일 경우에는 0, 6번 방향 P3일 경우엔 0,2번 방향 P4일 경우엔 2,4번 방향 이렇게 조건까지 만들어서 돌렸는데 테스트 케이스를 통과하지 전부 통과하진 못했다 +_+; ''' 거리두기 확인하기 : Programmers Level 2. ''' def solution(places): ..

[제주코딩베이스캠프 굿즈] 2번째 선물, 키홀더!!

제주코딩베이스캠프 서포터즈 활동을 하면서 총 3번의 굿즈 선물을 받습니다! 첫 번째로는 코딩 노트와 스티커였는데! 이번에는 제주코딩베이스캠프 키링 선물이... 도착했어요!! 강의를 듣게 해주시는 것도 넘 감사한데, 이렇게 굿즈 선물까지 챙겨주셔서 행복합니다..★ 택배 도착했다는 알림문자 받자마자 바로 데리고 왔습니닷 끄아아... 너무 귀여운거 아닌가요... 포장지부터 이렇게 귀여우면 완전 반칙..! 요 키링은 제 가방에 달아놓을 예정입니닷! 버그 잡는 개리씨 키링은 부모님 차키에 달아드렸습니다 ㅎ,ㅎ 크기도 적당해서 달고 다니기 부담스럽지 않은 키링이에요 개발자들을 위한 키링이에요! 누가봐도 개발자... Hello World .. 바로 알아보면 당신은 적어도 컴공생..! 굿즈 구경하고 싶으신 분들을 위해..

[n14719] 빗물 in python

(처음 든 생각) 일단 맵을 만들자. 그리고 나서 생각을 다시 해보자, 빗물이 차오르게 하려면? 양 옆에 빗물을 가둘 수 있는 기둥이 존재해야 한다. 위 그림에서는 양 옆에 빗물을 가둘 수 있게끔 기둥이 존재하고, 왼쪽 기둥은 높이가 3, 오른쪽 기둥높이는 4이다. 이때는 왼쪽 기둥의 높이에 맞춰야한다. (즉 최솟값) 그래서 이때 든 생각은 바닥부터 탐색을 시작해서 체크를 하자..? 여기서도 마찬가지로 왼쪽 빗물부터 보면, 왼쪽 기둥 높이는 3, 오른쪽 기둥 높이는 4 이때도 3을 선택 오른쪽 빗물은 왼쪾 기둥이 4, 오른쪽 기둥 높이가 2 따라서 2를 선택 위 그림에서는 빗물이 고일 수가 없다. 기둥이 1개만 존재하기 때문이다. (내가 맨 처음에 성공했던 풀이) 맨 아래부터 탐색을 시작한다. h, w ..

[n16928] 뱀과 사다리 게임

[처음 든 생각] 최소를 구하라고 해서 bfs가 제일 먼저 떠올랐다. 근데 bfs 구현을 매끄럽게 잘 해내지 못하는 상태라 사전공부를 하고 왔다. 사다리와 뱀이 이 문제에서는 키포인트! 너비 우선 탐색은 현재 노드에서 갈 수 있는 모든 노드를 먼저 탐색하는 과정이기 때문에, 최단 거리 구할 때 주로 사용한다. https://eboong.tistory.com/253 [이것이 코딩테스트다 Ch5 ] DFS와 BFS 1. 스택과 큐 (1) 스택 - 후입선출 - 삽입은 append(n) , 삭제는 pop() (2) 큐 - 선입선출 - 파이썬에선 큐 구현을 위해 deque 라이브러리를 사용한다. - 삽입 append(n), 삭제 popleft() - queue 라이브러리 대신.. eboong.tistory.com..

[n12919] A와 B 2 in python

[처음 한 생각] s를 t로 바꾸기 위해 2가지 연산만 사용할 수 있다. 그러면 역으로 생각해서 t를 s로 바꿀 수 있으면 그게 답이 아닐까 생각했다. s : A t : BABA이면, BABA에서 맨 오른쪽에 있는 A는 빼내고, B는 거꾸로 한 뒤 B를 빼내고, BA에서 A를 빼내고, B가 남는다..? 근데 예제는 분명 s에서 t로 바꿀 수 있다고 했는데.. 이게 아닌가보다.. 아니다.. 마지막 부분이 잘못된 오류가 있었다! BA에서 1번 연산이 아닌 2번 연산을 취하면 된다. 그럼 A가 남게 되니까 최종값은 1이 된다..! [풀이] T->S 과정을 거치면 답을 구할 수 있다. S->T로 만들면서 나타날 수 있는 경우의 수는 총 4가지 1번 연산 : 맨 끝에 A 추가 2번 연산 : 맨 끝에 B추가 후 문..

[n13699] 점화식

https://www.acmicpc.net/problem/13699 13699번: 점화식 다음의 점화식에 의해 정의된 수열 t(n)을 생각하자: t(0)=1 t(n)=t(0)*t(n-1)+t(1)*t(n-2)+...+t(n-1)*t(0) 이 정의에 따르면, t(1)=t(0)*t(0)=1 t(2)=t(0)*t(1)+t(1)*t(0)=2 t(3)=t(0)*t(2)+t(1)*t(1)+t(2)*t(0)=5 ... 주어진 입력 0 ≤ n www.acmicpc.net 매번 점화식을 재귀함수로 구하면 시간이 매우 오래걸려서 메모이제이션 방식을 사용하여 푼다. 처음엔, for문을 한 번만 돌리면 되는 줄 알았다. n=3일경우 f(3)= f(0)*f(2) + f(1)*f(1) + f(2)*f(0)이니까 3번만 돌리면 되..

[n20207] 달력

https://www.acmicpc.net/problem/20207 20207번: 달력 수현이는 일년의 날짜가 1일부터 365일로 표시되어있는 달력을 가지고있다. 수현이는 너무나도 계획적인 사람이라 올 해 일정을 모두 계획해서 달력에 표시해놨다. 여름이 거의 끝나가자 장 www.acmicpc.net 구현 문제 처음엔 2차원 배열에 시작점과 끝점을 다 넣어줘야하나 고민했다. 하지만 그렇게 되면, 연속지점은 어찌저찌 구하더라도 중간에 끊어지는 부분이나, 코팅지 면적의 높이를 구할 수 없게 된다. 이 문제는 일단 365개의 숫자가 들어갈 배열을 구해야한다. 1일부터~ 365일까지니까, 크기가 366인 배열을 만들어서 0번째 배열은 버리고, 1번째 배열부터 사용할 예정이다. calendar 배열에는 row(높이..