분류 전체보기205 백준 : 4963 섬의 개수 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 문제 정사각형으로 이루어져 있는 섬과 바다 지도가 주어진다. 섬의 개수를 세는 프로그램을 작성하시오. 한 정사각형과 가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사각형이다. 두 정사각형이 같은 섬에 있으려면, 한 정사각형에서 다른 정사각형으로 걸어서 갈 수 있는 경로가 있어야 한다. 지도는 바다로 둘러싸여 있으며, 지도 밖으로 나갈 수 없다. 입력 입력은 여러 개의 테.. Java - 알고리즘 2022. 7. 10. 좌표 정렬 알고리즘 공부하기 feat. Comparable interface, 백준 11650 좌표 정렬하기 1. 객체 비교는 왜 필요한가? 사실 지금까지의 '비교' 의 개념은 객체가 아닌 primitive type 에서만 적용되는 개념이었다. 또한 기본형 타입에서의 모든 비교는 아주 단순했다. 그냥 부등호로 크기가 결정되어버리니까. 그러나 자바를 다루다보면 '객체' 를 비교해야 하는 경우가 있다. 이때는 어떻게 비교하면 좋을까? 예시를 들어보자. 학생 객체 a, b, c 가 있다. a 는 1등급 97점, b 는 1등급 92 점, c 는 2등급 87 점이다. 나는 이 학생 객체들을 정렬하고 싶다. 정확히는 등급은 오름차순으로 하되, 같은 등급이면 점수를 내림차순으로 정렬하고 싶다. package algorithm; public class Test { public static void main(String[] a.. Java - 알고리즘 2022. 7. 10. 백준 문제 풀이 : 11659 구간 합 구하기 4 https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출력 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째.. Java - 알고리즘 2022. 7. 4. 백준 문제 풀이 : 바이러스 2606 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다. 예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바.. Java - 알고리즘 2022. 7. 4. Spring Web 기본 정리 : 원리, spring 설정, DB 연결해서 데이터 보여주기 나는 원래 spring을 spring boot 로 처음 접했었어서 그런지 spring 의 설정이 복잡하다는 것을 잘 몰랐었다. 다만 spring boot 가 spring 의 설정을 복잡함을 해결하고자 나왔다 라는 걸 알았기에 어느정도 복잡하구나...정도로 생각할 뿐이었다. 그런데 이번에 spring boot 가 아닌, 본래 spring 을 배우게 되었는데 세상에...엄청 복잡하다. 다만 복잡함에도 중요한 것들이 있었고, 이에 따라서 정리해보려고 한다. 1. 스프링 동작 원리 spring 실행순서 web.xml을 로딩 web.xml에 등록된 ContextLoaderListner 가 생성된다 ContextLoaderListner가 root-context.xml을 로딩시작! root-context.xml에서 .. Java - Spring &&n SpringBoot 2022. 7. 4. 백준 문제 풀이 : 2178 미로탐색 7576 토마토 이번에 BFS 문제를 풀면서 가장 크게 느낀것은 BFS 와 DFS 모두를 능숙히 사용할 수 있어야하고, 문제에 따라서 어떤 방법을 써야하는지 잘 고민해봐야한다는 것! 1. 2178 미로 탐색 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 이 문제는 DFS 가 아닌 BFS 로 풀어야하는 문제였다. 나는 그것도 모르고 DFS 로 풀었었는데 당연히 시간 초과가 나왔다ㅠ 생각해보니 최소 도착 거리(시간?) 인 만큼 BFS 로 푸는게 맞다 싶어서 얼른 코드를 뜯어고쳤다. packag.. Java - 알고리즘 2022. 6. 28. 백준 문제 풀이 : 14659 한조 서열 정리, 1339 단어 수학 오늘 스터디에서 풀었던 문제입니다. 한조 서열 정리는 어떻게어떻게 스스로 했는데...단어 수학 문제는 3시간 고민하고도 도저히 안될 것 같아서 결국 저보다 똑똑하신 많은 다른 개발자님들의 힘을 빌렸습니다ㅠㅠ 1. 한조서열정리하고옴ㅋㅋㅋ 이 문제는 다르게 푸는 방법도 있겠지만 저는 최근에 공부하고 있는 DFS 로 풀어봤습니다. 자세한 설명은 주석 참고 부탁드립니다 https://www.acmicpc.net/problem/14659 14659번: 한조서열정리하고옴ㅋㅋ 첫째 줄에 봉우리의 수 겸 활잡이의 수 N이 주어진다. (1 ≤ N ≤ 30,000) 둘째 줄에 N개 봉우리의 높이가 왼쪽 봉우리부터 순서대로 주어진다. (1 ≤ 높이 ≤ 100,000) 각각 봉우리의 높이는 중복 없이 www.acmicpc.n.. Java - 알고리즘 2022. 6. 25. DFS 문제풀이 : 중복순열 다루기, 거스름돈 계산하기 이번에는 중복순열을 Java 코드로 만들어보고, 관련 문제를 풀어볼 것입니다. 사실 저는 고딩때 순열, 조합 이런 것들을 정말 정말 싫어했었는데... 고등학교 졸업 후 약 10년 만에 이런 문제들을 다시 봤지만, 사람은 변하지 않나 봅니다. 여전히 싫네요ㅠ 1. 중복순열 다루기 ※ 설명 1부터 N 까지 적힌 구슬에서 중복을 허락하여 M번 뽑아서 나열하라 ※ 입력 첫 번째 줄에 자연수 N(3 for 문 시작 pm[0] = 1; && dfs(index+1) == dfs(1) // 2. dfs(1) 이 시작됨 => for 문 시작, i=1 일 때 pm[1] = 1 && dfs(index+1) == dfs(2) // 3. dfs(2) 는 곧 index == 2 임을 의미하고, m = 2 때문에 index == .. Java - 알고리즘 2022. 6. 19. DFS 문제풀이 : 바둑이 승차, 잔돈 계산하기 오늘은 DFS 관련 문제를 풀고 공부해봤습니다. 코드에 대한 설명은 주석에 달아두었습니다. 1. 바둑이 승차 ※ 설명 철수는 그의 바둑이들을 데리고 시장에 가려고 한다. 그런데 그의 트럭은 C킬로그램 넘게 태울수가 없다. 철수는 C를 넘지 않으면서 그의 바둑이들을 가장 무겁게 태우고 싶다. N마리의 바둑이와 각 바둑이의 무게 W가 주어지면, 철수가 트럭에 태울 수 있는 가장 무거운 무게를 구하는 프로그램을 작성하세요. ※ 입력 첫 번째 줄에 자연수 C(1 Java - 알고리즘 2022. 6. 19. MyBatis 활용하기 : DB 연결, DB 테이블 값 가져오기 MyBatis SQL Mapping Framework mybatis 는 DB 를 보다 쉽게 사용할 수 있게 해주는 일종의 DB 프레임워크이다 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와 주는 개발 프레임 워크로서 JDBC를 통해 데이터베이스에 엑세스하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로 시저 및 고급 매핑을 지원하며 모든 JDBC 코드 및 매개 변수의 중복작업을 제거 합니다. Mybatis에서는 프로그램에 있는 SQL쿼리들을 한 구성파일에 구성하여 프로그램 코드와 SQL을 분리할 수 있는 장점을 가지고 있습니다. mybatis 의 원래 이름은 ibatis 로 ibatis 가 google 의 지원을 받아 업그레이드! 된게 바로 mybatis이다. 아.. DB - SQL 2022. 6. 13. 그래프에서 최단거리 구하기 BFS 문제 제시 보통 이런 문제에서 간선의 수는 도로의 갯수, 도로 1개당 이동시간 몇 분 이런식으로 나온다 1번 도시에서 각 도시까지 가는 최소 이동 시간을 구하시오 1번 도시에서 3번, 4번 도시까지 최소 이동 시간은 1분 첫째 줄에는 도시의 수 N(1≤N 해당 queue 는 LinkedList 를 담음 // Linklist 인 이유는 도시와 도시가 연결 linked 되어 있기 때문!! Queue queue = new LinkedList(); // v 번째를 지났다면 ch 배열의 v 번째 인덱스에 1 이 들어감 ch[v] = 1; // v 번째에서 v 번째 까지 거리는 당연 0 -> 자기 자신으로의 거리 dis[v] = 0; // queue 에 v 를 넣기 queue.add(v); // queue 가 비어.. Java - 알고리즘 2022. 6. 12. DataPlay Project - 2 : 이미지 텍스트 번역기 (2) 코드 정리 DataPlay - 데이터 갖고 놀기 2탄 : 이미지 번역기 코드 정리 이번 글에는 해당 프로젝트의 코드를 정리해보겠습니다 1. 파파고 API - 파파고 API 는 네이버의 파파고 라는 번역기를 사용할 수 있도록 하는 API 이다. - 당연히 파파고 api 를 사용하기 위한 시크릿키와 아이디값이 있는데 해당 값들은 APIdata 라는 인터페이스 안에 따로 선언해두었다. - 파파고 API 를 사용해서 view 에서 들어오는 데이터를 번역 할 수 있도록 한다. - 네이버 개발자 API 센터에 어떻게 사용하는지 아주 자세하게!! 정말 자세하게 적혀있다. 아래 있는 코드는 해당 코드를 내가 필요한것에 맞게 변형시켜서 만든 코드이다. - 내가 추가한 코드는 주로 번역될 언어를 선택하는 getSource 메소드, .. 토이 프로젝트/Spring&Java 갖고놀기 2022. 6. 11. 이전 1 ··· 6 7 8 9 10 11 12 ··· 18 다음 728x90 반응형