보글보글 개발일지
반응형
[이것이 자바다] Ch1. 자바 시작하기
코딩기록/자바 2023. 1. 16. 01:36

기초부터 쌓기위해.. 빠르게 다시 시작한 자바 공부 자바의 특징 이식성 높다 객체지향 언어 함수적 스타일 코딩 지원 메모리 자동 관리 멀티스레드 쉽게 구현 가능 동적 로딩 지원 - 애플리케이션 실행시 모든 객체 생성X, 객체 필요한 시점에 클래스 동적 로딩해서 객체 생성 오픈소스 라이브러리 풍부 JVM 소스파일 (.java)를 컴파일러(javac.exe)로 컴파일 바이트 코드 파일(.class)생성 JVM 구동 명령어(java.exe)에 의해 JVM에서 해석 해당 운영체제에 맞게 기계어로 번역 JVM이 main() 메소드를 찾아 메소드 블록 실

article thumbnail
[프로그래머스/C++] 게임 맵 최단거리
알고리즘 2022. 11. 14. 08:28

문제가 상당히 길다. 하지만 이전 문제들처럼 그냥 거리계산만 하면 된다. 기본 BFS문제에 속하는 문제이다. 맵의 시작 부분을 큐에 넣음과 동시에 BFS를 시작한다. 도달하지 않은 곳의 dist 값은 -1이고, 시작점으로부터의 거리가 dist 값에 업데이트된다. 생각해 주어야 할 것은, (n-1,m-1)번째 dist값이 -1이라면 길이 막혀서 갈 수 없는 곳이므로 -1을 출력한다는 것과, 시작점의 dist을 0으로 설정하였으므로 마지막에 값을 저장할 때 +1을 해줘야한다는 것이다. #include #include #include using namespace std; int dist[102][102]; int dx[4]={0,1,0,-1}; int dy[4]={1,0,-1,0}; int solution(v..

article thumbnail
[프로그래머스/C++] 타겟 넘버
알고리즘 2022. 11. 14. 08:05

고민하다가 모르겠어서 풀이를 보고 생각을 해 보았습니다.. DFS에 대한 완벽한 이해가 안되었던 것 같고, 뭔가 재귀인 것 같다고 생각하긴 했지만 구현 방식이 생각나지 않았다. 재귀.. 너무 어려워요 sum과 index를 기록해가며 DFS를 진행한다. 제일 먼저 sum = 0, index = 0을 매개변수로 DFS 함수를 호출하면 DFS 함수 내에서 더하기 연산(sum = sum+numbers[0], index = 1), 빼기 연산 (sum = sum-numbers[0], index = 1)을 순차적으로 진행한다. sum은 numbers의 각 원소에 맞게 더하거나 빼게 되고, index는 다음 numbers의 원소로 넘어갈 때마다 1씩 증가한다. 종료 조건은 index와 numbers의 길이가 같은 경우..

article thumbnail
[백준/1743][C++] 음식물 피하기
알고리즘 2022. 11. 7. 05:04

기본적인 거리 계산 문제이다. 우선 dist 배열을 -1로 초기화해 주었다. 이중 for문을 돌면서 방문할 노드를 찾는다. #include using namespace std; int n,m,k; int board[102][102]; int dist[102][102]; int ans; int dx[4]={1,0,-1,0}; int dy[4]={0,1,0,-1}; int main(void){ ios::sync_with_stdio(0); cin.tie(0); cin>>n>>m>>k; for(int i=0;i>r>>c; board[r][c]=1; } for(int i=1;i

article thumbnail
[백준/2178][C++] 미로 탐색
알고리즘 2022. 11. 2. 14:20

거리계산과 방문 체크 배열을 따로 만들지 않고, vis배열을 우선 -1로 초기화해서 한번도 방문하지 않은 노드를 -1로 나타낼 수 있도록 하였다. 방문을 한 경우 바로 전 노드의 거리에 +1을 해주었다. 그렇게해서 시작점부터 특정 정점까지 모든 위치의 거리를 구할 수 있었다. #include using namespace std; int n,m; string board[102]; int vis[102][102]; int dx[4]={1,0,-1,0}; int dy[4]={0,1,0,-1}; int main(void){ ios::sync_with_stdio(0); cin.tie(0); cin>>n>>m; for(int i=0;i>board[i]; }//입력받기 for(int i=0;i

article thumbnail
[백준/1303][C++] 전쟁 - 전투
알고리즘 2022. 11. 2. 13:35

1. 시작점이 여러개인 경우 2. 거리 계산 두가지를 할 수 있으면 풀 수 있는 문제 같다. 1번의 경우 이중 for문으로 모든 정점을 돌며 시작점을 찾으며 bfs를 진행하면 되고, 2번의 경우 시작점을 기준으로 큐안에 들어가는 정점의 갯수를 세면 된다. 그리고 W,B의 경우를 각각 구하기 위해 BFS를 두번 구하였다. #include using namespace std; int n,m; string board[102]; int vis[102][102]; int dx[4]={1,0,-1,0}; int dy[4]={0,1,0,-1}; int main(void){ ios::sync_with_stdio(0); cin.tie(0); cin>>n>>m; for(int i=0;i>board[i]; } //bfs를 ..

article thumbnail
[백준/1260][C++] DFS와BFS
알고리즘 2022. 11. 2. 13:00

BFS와, DFS의 가장 기본적인 문제인듯 싶다. dfs는 재귀함수로 구현하였고, bfs는 큐를 사용하였다. 먼저 DFS의 경우, 그래프에서 노드간의 연결을 위해 벡터를 사용하였다. 그냥 이차원 배열을 사용해도 좋을 듯 하다. 입력 받으며 벡터에 저장할 때, 해당 그래프가 양방향임을 주의하자 "단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문" 이라는 문구로 인해 sort가 필수적이다. 그러나 2차원 배열을 통해 1번 노드부터 m번 노드까지 방문하면서 1. 방문한 적이 있는지, 2. x번쨰와 i번째가 연결되어 있는지 확인하는 방식을 사용해도 좋을 듯하다. 다음으로 BFS의 경우, 우선 시작 노드에 방문 표시를 한 뒤, 큐에 푸시한다. 그리고 큐가 빌때 까지 무한 루프 내부..

BFS, DFS 공부
알고리즘 2022. 11. 2. 12:50

- 재귀함수: 자기 자신 다시 호출 : 종료 조건 반드시 명시. 함수 무한 호출 가능 - DFS(Depth First Search) : 깊이 우선 탐색. 깊은 부분 우선적으로 탐색 : 스택 or 재귀함수 - DFS 동작 방식 1. 탐색 시작 노드 스택에 삽입, 방문 처리 2. 스택 최상단 노드에 방문하지 않은 인접한 노드 있으면 해당 노드 스택에 삽입, 방문 표시. 방문하지 않은 인접 노드 없으면 스택에서 최상단 노드 꺼낸다. 3. 더이상 2번 수행할 수 없을 때까지 반복 - 베이스 라인 void dfs(int x){ vis[x] = true; cout

article thumbnail
[자바 ORM 표준 JPA 프로그래밍 - 기본편] 정리3
코딩기록/스프링 2022. 8. 13. 16:49

섹션 9~11 섹션 9. 값 타입 기본값 타입 [JPA의 데이터 타입 분류] 엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 식별자로 지속해서 추적 가능 예) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능 값 타입 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있으므로 변경 시 추적 불가 예) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체 값 타입 분류: 기본 값타입, 임베디드 타입, 컬렉션 값 타입(collection value type) 기본값 타입 자바 기본 타입(int, double) 래퍼 클래스(Integer, Long) String 생명 주기를 엔티티에 의존. 회원을 삭제하면 이름, 나이 필드도 ..

article thumbnail
[자바 ORM 표준 JPA 프로그래밍 - 기본편] 정리2
코딩기록/스프링 2022. 8. 7. 03:08

섹션 6~8 정리 섹션 6. 다양한 연관관계 매핑 연관관계 매핑시 고려사항 다중성 다대일, 일대다, 일대일, 다대다(실무에서 쓰면 안됨) 단방향, 양방향 테이블: 외래 키 하나로 양쪽 조인 가능 -> 방향이라는 개념이 없음 객체: 참조용 필드가 있는 쪽으로 참조 가능. 한쪽만 참조하면 단방향, 양쪽 참조시 양방향 연관관계 주인 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음 객체 양방향 관계는 A->B, B->A 처럼 참조가 2군데 객체 양방향 관계는 참조가 2군데 있음. 둘중 테이블의 외래키를 관리할 곳을 지정해야함 연관관계의 주인: 외래 키를 관리하는 참조 주인의 반대편: 외래 키에 영향을 주지 않음, 단순 조회만 가능! (읽기) 다대일 [N:1] - 가장 많이 쓴다. 다대일 단방향 다 쪽에 외..

반응형