분류 전체보기 562

[스프링부트] 어노테이션 모음

@SpringBootApplication : 스프링 부트의 자동설정, 스프링 Bean 읽기와 생성을 모두 자동으로 설정됩니다. 특히 @SpringBootApplication이 있는 위치부터 설정을 읽어가기 때문에 항상 이 클래스는 프로젝트의 최상단에 위치해있어야 합니다. @SpringBootApplication public class SpringbootWebprojectApplication { public static void main(String[] args) { SpringApplication.run(SpringbootWebprojectApplication.class, args); } // SpringApplication.run으로 내장 WAS(웹 애플리케이션 서버)를 실행합니다. // 내장 WAS란..

[인텔리제이] 프로젝트 깃허브 저장소에 올리기

인텔리제이에서 프로젝트를 깃허브 저장소에 올리는 방법에 대해 작성해보려고 합니다. 깃허브 액션을 활용할 겁니다. Command + Shift + A 단축키를 누르면 깃허브 액션 검색창이 활성화됩니다. share project on github를 타이핑하면 깃허브 로그인 창이 나옵니다. 깃허브 저장소에 등록하면 깃허브 사이트에 들어가지 않고도 바로 깃허브 저장소를 만들 수 있게 됩니다.

[스프링부트] Maven과 Gradle의 차이점

현재 공부중인 책과 강의에서는 gradle을 선택하여 프로젝트를 생성했습니다. 그런데, 회원가입 구현을 하면서 찾다 보니 gradle 대신 maven을 사용하는 프로젝트를 종종 보았고, 어떤 차이가 있는지 궁금해서 조사를 해보았습니다. 참고로 Maven과 Gradle은 빌드 관리 도구입니다. 빌드 : 빌드란 소스코드 파일들을 컴퓨터에서 실행이 가능한 소프트웨어로 변환하는 일련의 과정을 의미합니다. 따라서 컴파일, 테스팅, 배포 등이 빌드 과정의 집합에 속합니다. Maven과 Gradle 같은 빌드 관리 도구를 왜 사용해야 할까요? 빌드 관리 도구가 어떤 역할을 수행할까요? 빌드 관리 도구 : 빌드 자동화를 수행해 실행가능한 프로그램으로 바꿔주는 도구입니다. 빌드 관리 도구를 쓰면 뭐가 좋은건데?라는 의문..

[2138] 전구의 스위치 in python

https://www.acmicpc.net/problem/2138 2138번: 전구와 스위치 N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 < i < N)번 스위치를 누르면 i-1, i, i+1의 세 개의 전구의 상태가 바뀐다. 즉, 꺼져 www.acmicpc.net 시간 복잡도를 생각하지 못하고 bfs로 탐색을 진행했다가 메모리초과 뜸.. 아래 코드의 시간복잡도는 O(N^2) 1초에 N의 범위가 2000 이하여야 쓸 수 있는 코드! 하지만 주어진 데이터 개수는 10만 시간 복잡도를 계산하면 10만 *. 10만 =. 100만 결국 O(N)으로 작성을 해야 함! 시간 제한은 2초 # import sys # from collection..

[1463] 1로 만들기 in python

https://www.acmicpc.net/problem/17626 17626번: Four Squares 라그랑주는 1770년에 모든 자연수는 넷 혹은 그 이하의 제곱수의 합으로 표현할 수 있다고 증명하였다. 어떤 자연수는 복수의 방법으로 표현된다. 예를 들면, 26은 52과 12의 합이다; 또한 42 + 32 + 1 www.acmicpc.net > dp i%2로 나눠지고 i%3으로 나눠지면 min함수를 이용해서 어떤 경우를 선택해야 최솟값으로 나오는 지 확인해야한다. 위에서 구한 값과 -1을 뺀 값중에서도 어떤 경우를 선택해야 최솟값으로 나오는 지 확인해야 한다. import sys n = int(sys.stdin.readline()) dp = [0 for _ in range(n + 1)] dp[0],..

[17626] Four Squares in python

> dp https://www.acmicpc.net/problem/17626 17626번: Four Squares 라그랑주는 1770년에 모든 자연수는 넷 혹은 그 이하의 제곱수의 합으로 표현할 수 있다고 증명하였다. 어떤 자연수는 복수의 방법으로 표현된다. 예를 들면, 26은 52과 12의 합이다; 또한 42 + 32 + 1 www.acmicpc.net 총 4개 이하의 자연수 제곱수들의 합으로 모든 자연수를 정의내릴 수 있다. N = a^2 + b^2 + c^2 + d^2 dp를 푸는 문제는 항상 규칙이 존재한다. n이 6일때를 생각해보자. i가 1일땐 1이라고 초기화 진행 i=2일때, 2는 1의 제곱수들의 합으로 정의할 수 있음. 2 = 1^2 + 1^2 2 - 1^2 = 1이다. 따라서 dp[1]과..

[1735] 분수합 in python

> 유클리드 호제법 최대 공약수를 구할 땐 유클리드 호제법을 이용해야 한다. * 유클리드 알고리즘 * : a, b의 최대 공약수는 (a-b),b의 최대공약수와 같다. 1. 임의의 두 자연수 a,b가 주어졌다. 2. 두 자연수 중에 큰 값을 a라고 가정한다. 3. 큰 수 a 자리에는 a-b와 b값 중에 큰 값을 넣는다. 작은 수 b 자리에는 a-b와 b값 중에 작은 값을 넣는다. 그리고 재귀함수를 호출한다. import sys sys.setrecursionlimit(100000) def gcd(a, b): if b == 0: return a return gcd(max(a - b, b), min(a - b, b)) c1, p1 = map(int, input().split()) c2, p2 = map(int,..

[1010] 다리놓기 in python

> 다이나믹 > 조합 일단 조합으로 먼저 푼 문제 해당 문제는 서로 다리가 교차되는 일은 허용되지 않으므로 순열(중복허용)대신 조합(중복불허)을 사용함. 조합은 팩토리얼 함수를 이용해서 구할 수도 있고, permutation 함수를 이용할 수도 있음. 해당 문제에서는 팩토리얼을 재귀함수로 구현 ex) 6C3 = 6 * 5 * 4 // 3! 8C3 = 8 * 7 * 6 // (3!) -> ( factorial(8) // factorial(8-3) ) // factorial(3) t=int(input()) def factorial(n): if n==0 or n==1: return 1 return factorial(n-1)*n for _ in range(t): w,e=map(int,input().split()..