전체 글 100

[백준 알고리즘] 1260번 DFS와 BFS. 파이썬(python)

import queue n,m,v=map(int,input().split()) # 인접행렬(adjacency matrix) # 그래프에서 어느 노드들끼리 연결되었는지 나타내는 이차원 행렬 graph=[[0]*(n+1) for _ in range(n+1)] for _ in range(m): x,y=list(map(int,input().split())) # 양방향 그래프 graph[x][y]=graph[y][x]=1 # 방문 리스트(True/False or 0/1) dfs_visited, bfs_visited= [False]*(n+1),[False]*(n+1) # DFS-스택 def dfs(v): dfs_visited[v]=True # 정점 v에 대해 방문처리 print(v, end=' ') # 띄어쓰기 단..

알고리즘 2022.04.28

[백준 알고리즘] 1012번 유기농 배추. 파이썬(python)

DFS 중 기본 1. 한 지점의 상, 하, 좌, 우를 살펴 주변값이 '1'이면서 아직 방문하지 않는 지점이 있으면 방문한다. (방문한 곳은 값을 바꿔주기) 2. 방문하지 않은 지점에서 다시 상, 하, 좌, 우를 살펴본다. (더이상 없으면 카운트) - 주어진 범위를 넘어가면 종료 문제를 풀다보니 DFS에서 입력방식이 두가지로 나누어졌다. 1. 위치 좌표를 제공 -> 그래프를 직접 만든다. 2. 입력값을 통으로 제공 -> 입력하면서 리스트에 바로 넣는다. DFS사용 시 RecursionError 주의 더보기 RecursionError는 재귀와 관련된 에러입니다. 가장 많이 발생하는 이유는 Python이 정한 최대 재귀 깊이보다 재귀의 깊이가 더 깊어질 때입니다. Python이 정한 최대 재귀 깊이는 sys...

알고리즘 2022.04.27

[백준 알고리즘] 1975번 소수찾기. 파이썬(python)

2~자기자신까지 나누는 것을 반복해 나머지가 0인 것이 있는지 n=int(input()) numbers=map(int, input().split()) count=0 # 소수개수 카운트 for num in numbers: # 리스트 원소 하나씩 check=0 # 소수인지 아닌지 체크하는 변수 if num >1: for i in range(2,num): # 2부터 자기자신 전까지 나눈다 if num%i==0: # 나누어 떨어지는 수가 있으면 check=1 # 1은 소수아님 break # 반복문 탈출 if check==0: # 0이면 소수 count+=1 # 소수 개수가 1증가 print(count)

알고리즘 2022.04.20

시간 초과(입력이 많을 때)

보통 input()을 사용해 입력을 받는데 반복문을 통해 입력이 많아질 때 시간 초과가 일어날 수 있다. import sys # 한 개 입력 a = int(sys.stdin.readline()) # 여러개 입력 a, b = map(int, sys.stdin.readline().split()) # 1차원 배열 a = list(map(int,sys.stdin.readline().split())) # 2차원 배열 a = [] n = int(sys.stdin.readline()) for i in range(n): a.append(list(map(int,sys.stdin.readline().split())))

파이썬 2022.04.15

[spring]스프링 DB 기술

H2 Database 자바 기반 오픈소스 관계형 데이터베이스 관리시스템(RDBMS) 용량이 작고 가볍다. 웹으로 화면 제공. 내가 설치한 경로 : C:\Program Files (x86)\H2 C:\Program Files (x86)\H2\bin에서 h2.bat으로 실행 [사용자]-[사용자이름] 폴더에 test.mv.db 파일이 생성됨 JDBD URL을 jdbc:h2:tcp://localhost/~/test 로 연결해서 사용(소켓으로 연결) 순수 Jdbc JDBC : 자바에서 DB에 접속할 수 있도록 하는 자바 API 환경설정 build.gradle 파일에 jdbc, h2 데이터베이스 관련 라이브러리 추가 implementation 'org.springframework.boot:spring-boot-st..

스프링 2022.04.11

[spring]스프링 빈

컨트롤러가 서비스와 리포지토리를 사용할 수 있게 의존관계 준비. 컴포넌트 스캔, 자동 의존관계 설정 @Autowired 스프링이 연관된 객체를 스프링 컨테이너에서 찾아 넣어줌 더보기 DI(의존성 주입) 객체 의존관계를 외부에서 넣어주는 것 @Service @Autowired @Repository Controller->Service->Repository 스프링 빈을 등록할 때 싱글톤으로 등록=같은 스프링 빈이면 모두 같은 인스턴스 자바 코드로 직접 빈 등록 SpringConfig 파일 생성 @Configuration public class SpringConfig { @Bean public MemberService memberService() { return new MemberService(memberRep..

스프링 2022.03.02

[Java]Optional

NPE(NullPointerException)를 방지할 수 있도록 도와수는 Wrapper 클래스. 더보기 wrapper 클래스란? 기본 자료형 데이터를 인스턴스화 해야 하는 상황에서 사용할 수 있는 클래스. 기본 자료형 데이터를 저장 및 참조할 수 있는 구조로 정의된다. 기능 - Boxing : 기본 자료형 데이터를 Wrapper 인스턴스로 감싸는 것 - UnBoxing : Wrapper 인스턴스에 저장된 데이터를 꺼내는 것 Integer num = new Integer(10); // 박싱 int n = num.intValue(); // 언박싱 기존에는 if(value != nulll) 같이 null을 검사하기 위한 로직을 사용해 복잡. Optional 클래스는 null일 수도 있는 변수를 감싼다. 여러..

자바 2022.03.01

[spring]테스트 케이스 작성

테스트는 순서에 의존적이면 안됨. 하나의 테스트가 끝날 때마다 저장소나 공용 데이터를 지워줘야 한다. @AfterEach 사용 // given 어떤것이 주어졌을 때 // when 언제 // then 어떤 결과가 - 테스트를 먼저 만들고 구현 클래스를 만드는 방식=> 테스트주도개발(TDD) reference www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

스프링 2022.02.28