728x90 전체글71 [Algorithm] 백준 17142(BOJ 17142) 연구소 3 문제풀이! (Java) 안녕하세요 coding-knowjam입니다. 오늘은 백준 온라인 저지에 있는 17142번 연구소 3 문제를 풀어보겠습니다. 문제에 대한 링크는 아래에 있으니 문제를 먼저 읽고 와주시길 바랍니다. https://www.acmicpc.net/problem/17142 1. 문제 설명 해당 문제는 많이 풀어봤던 BFS문제를 응용해서 풀면 되는 문제입니다. 기본적으로 문제에서 요구하는 바는 바이러스가 가장 빨리 퍼지는 최소의 시간을 구하는 것이기 때문에, 주어진 바이러스에서 활성 바이러스를 선택하는 모든 경우의 수를 고려해야 합니다. 모든 경우의 수마다 BFS를 수행하여 가장 빨리 바이러스가 퍼졌을 때를 찾으면 되는 문제입니다. 해당 요구사항을 구현할 때 주의할 점은 다음과 같습니다. 비활성 바이러스는 활성 바이.. Algorithm & Data Structure/문제풀이 2021. 11. 14. [Algorithm] 백준 14500(BOJ 14500) 테트로미노 문제풀이!! (Java) 안녕하세요 Coding-Knowjam입니다. 오늘은 백준 온라인 저지에 있는 14500번 테트로미노 문제를 풀어보겠습니다. 문제에 대한 링크는 아래에 있으니 문제를 먼저 읽고 와주시길 바랍니다. https://www.acmicpc.net/problem/14500 1. 문제 설명 해당 문제를 풀고 나서 다른 분들의 풀이를 보니 BFS나 DFS를 활용해서 푸시는 분들도 있었고 테트로미노의 모양 전부를 체크해서 문제를 푸는 분들도 있었습니다. 저는 탐색 알고리즘보다는 19개 모양에 대해서 모두 탐색해서 값을 구하는 방법으로 구현했습니다. 테트로미노 모양을 보면 긴 막대와 정사각형 모양을 제외하고는 모두 공통된 형태에 포함됩니다. 예를 들어 2개의 행과 3개의 열로 이루어진 직사각형에서 첫 행의 1,2번 열의 .. Algorithm & Data Structure/문제풀이 2021. 10. 28. [JPA] JPA를 사용해서 API 개발 시 주의 사항 - 1편(Entity반환) 안녕하세요 Coding-Knowjam입니다. 오늘은 JPA를 사용해서 API를 개발할 때 주의해야 할 점에 대해서 알아보겠습니다. 1. JPA를 사용 한 API 개발 시 주의사항 여러 가지 주의해야 할 점이 있지만 가장 중요한 건 엔티티를 그대로 반환하면 안 된다는 점입니다. 결론을 먼저 말씀드리자면 엔티티를 그대로 반환하면 추후에 엔티티에 변경사항이 발생할 때, API의 스펙이 변하기 때문에 해당 API를 사용하는 여러 곳에서 문제가 발생하게 됩니다. 한번 코드로 살펴보겠습니다. 1.1 클래스 생성 1.1.1 Developer Entity package org.codingnojam.springbootjpastudy.domain; import javax.persistence.Column; import j.. Spring Data 2021. 10. 20. [Algorithm] 백준 4095번(BOJ 4095) 최대 정사각형 문제풀이!!(Java) 안녕하세요 Coding-Knowjam입니다. 오늘은 백준 온라인 저지에 있는 4095번 최대 정사각형 문제를 풀어보겠습니다. 문제에 대한 링크는 아래에 있으니 문제를 먼저 읽고 와주시길 바랍니다. https://www.acmicpc.net/problem/4095 1. 문제 설명 해당 문제는 다이내믹 프로그래밍 유형으로 문제를 풀기 위해서 점화식을 도출해야 합니다. 사실 대부분의 DP문제가 점화식만 도출하면 코드 작성은 간단한데, 이번 문제도 다르지 않습니다. 주어진 2차원 배열의 최대 정사각형의 크기를 map[i][j]로 가정하면 점화식은 다음과 같습니다. map[i][j] = min(map[i-1][j-1], map[i-1][j], map[i][j-1]) + 1 즉, 2차원 배열의 좌측 대각선, 좌측,.. Algorithm & Data Structure/문제풀이 2021. 10. 19. [Algorithm] 백준 16235(BOJ 16235) 나무 재테크 문제 풀이!! (Java) 안녕하세요 Coding-Knowjam입니다. 오늘은 백준 온라인 저지에 있는 16235번 나무 재테크 문제를 풀어보겠습니다. 문제에 대한 링크는 아래에 있으니 문제를 먼저 읽고 와주시길 바랍니다. https://www.acmicpc.net/problem/16235 1. 문제 설명 해당 문제는 구현 문제로써 주어진 내용에 맞게 구현하면 풀 수 있습니다. 문제에서 시간이 다른 문제에 비해 넉넉하지 않은 편이기 때문에, 코드를 구현할 때 주의해야 합니다. 해당 문제를 풀면서 몇 번 시간 초과 판정을 받았는데 다음과 같은 부분이었습니다. List를 사용해서 구현을 한다면 매 년마다 정렬을 하지는 말 것 ArrayList의 경우 remove() 할 때, 내부의 배열의 갱신될 수 있으므로 주의할 것 LinkedLi.. Algorithm & Data Structure/문제풀이 2021. 10. 9. [Algorithm] 백준 17144(BOJ 17144) 미세먼지 안녕 문제 풀이!! (Java) 안녕하세요 Coding-Knowjam입니다. 오늘은 백준 온라인 저지에 있는 17144번 미세먼지 안녕! 문제를 풀어보겠습니다. 문제에 대한 링크는 아래에 있으니 문제를 먼저 읽고 와주시길 바랍니다. https://www.acmicpc.net/problem/17144 1. 문제 설명 해당 문제는 단순하게 구현하면 되는 문제입니다. 구현할 때 주의해야 할 부분은 다음과 같습니다. 먼지가 확산되고 난 이후 새롭게 생성된 먼지들도 체크할 것 먼지가 확산될 때, 기존 먼지량을 따로 저장하지 않고 덮어쓰면 먼지량이 달라지므로 주의 공기청정기가 2개의 방향을 가지고 바람을 내뿜기 때문에 상하좌우 탐색범위 설정할 때 주의 위의 사항을 주의해서 BFS를 활용해서 구현하시면 어렵지 않게 풀 수 있습니다. 그럼 코드를 살.. Algorithm & Data Structure/문제풀이 2021. 10. 7. [Algorithm] 백준 4963(BOJ 4963) 섬의 개수 문제 풀이(Java)!! 안녕하세요 Coding-Knowjam입니다. 오늘은 백준 온라인 저지에 있는 4963번 섬의 개수 문제를 풀어보겠습니다. 문제에 대한 링크는 아래에 있으니 문제를 먼저 읽고 와주시길 바랍니다. https://www.acmicpc.net/problem/4963 1. 문제 설명 해당 문제는 그래프 탐색 문제로 BFS혹은 DFS를 구현할 줄 아신다면 쉽게 풀 수 있는 문제입니다. 문제를 풀 때 주의하셔야 할 점은 테스트 케이스가 여러 개라는 것과 이동좌표 계산할 때 대각선도 고려해야 한다는 점입니다. 해당 부분만 고려하면 어려운 부분은 없으므로 바로 코드를 살펴보겠습니다. 2. Java로 문제 풀이 package study.blog.codingnojam.algorithm.boj; import java.io.*.. 카테고리 없음 2021. 10. 2. [Algorithm] 백준 16234번(BOJ 16234) 인구 이동 문제풀이!! (Java) 안녕하세요 Coding-Knowjam입니다. 오늘은 백준 온라인 저지에 있는 16234번 인구이동 문제를 풀어보겠습니다. 문제에 대한 링크는 아래에 있으니 문제를 먼저 읽고 와주시길 바랍니다. https://www.acmicpc.net/problem/16234 1. 문제 설명 해당 문제는 BFS를 사용해서 주어진 내용에 맞게 구현을 하면 풀 수 있는 문제입니다. 문제를 풀 때 생각을 좀 해야 하는 부분은 BFS를 수행하면서 연합이 된 국가들을 어떻게 저장할지를 고려해야 합니다. 저는 BFS과정에서 연합이 된 국가들을 따로 List에 저장하고, 국가들의 인구수들의 합을 저장하는 변수를 별도로 선언해서 연합국가들의 정보를 저장해서 문제를 해결했습니다. 그럼 코드를 살펴보겠습니다. 2. Java로 문제 풀이 .. Algorithm & Data Structure/문제풀이 2021. 9. 21. [Algorithm] 백준 16236(BOJ 16236) 아기상어 문제 풀이!!(Java) 안녕하세요 Coding-Knowjam입니다. 오늘은 백준 온라인 저지에 있는 아기 상어 문제를 풀어보겠습니다. 문제에 대한 링크는 아래에 있으니 문제를 먼저 읽고 와주시길 바랍니다. https://www.acmicpc.net/problem/16236 1. 문제 설명 해당 문제는 구현 문제이면서 BFS를 같이 사용해줘야 하는 문제입니다. 문제를 읽어보면 아기 상어가 먹이를 찾기 위해서 이동해야 하는데 이동하는 과정에서 먹이의 거리가 동일하면 가장 왼쪽의 위에 있는 먹이를 먹어야 합니다. 먹이를 찾기 위한 과정을 BFS로 풀어내고 이후에 찾아낸 먹이로 이동하여 먹이를 먹고, 먹은 횟수를 계산하여 몸집을 키워주는 형태로 코드를 작성하여 반복적으로 수행하여 먹이가 없을 때 이동한 거리(문제에서는 시간)를 결괏값.. Algorithm & Data Structure/문제풀이 2021. 9. 12. [Algorithm] 백준 14889(BOJ 14889) 스타트와 링크 문제 풀이!!(Java) 안녕하세요 Coding-Knowjam입니다. 오늘은 백준 온라인 저지에 있는 14889번 스타트와 링크 문제를 풀어보겠습니다. 문제에 대한 링크는 아래에 있으니 문제를 먼저 읽고 와주시길 바랍니다. https://www.acmicpc.net/problem/14889 1. 문제 설명 해당 문제는 구현 문제이면서 백트래킹으로 접근해서 풀 수 있습니다. 대부분의 완전 탐색의 문제는 재귀 메서드로 통해서 해결할 수 있습니다. 한 가지 유의사항은 팀을 나누는 모든 경우의 수를 구할 때, [0,1,2], [2,0,1], [1,0,2] 이 3개의 팀은 모두 같은 능력치의 결과를 가지기 때문에 중복을 제외해야 합니다. 그럼 코드를 살펴보겠습니다. 2. Java로 문제 풀이 package study.blog.coding.. Algorithm & Data Structure/문제풀이 2021. 9. 10. [SpringBoot] javax.validation이 import가 안되는 경우 안녕하세요 Coding-knowjam입니다.. 오늘은 혼자서 개인 공부하다가 갑자기 생긴 이슈에 대해서 짤막하게 적어보려고 합니다. 1. javax.validation가 왜 안보이지???... 그냥 단순하게 DTO성격으로 쓸려고 멤버 폼 클래스를 만들었는데 @NotEmpty 어노테이션에서 validation이 자동완성에서 안 나오는 현상이 발생하면서 import도 없음!! 그래서 Gradle을 확인해봤더니 없더라고요?? 예전에는 따로 의존성 추가 안 해줘도 바로 쓸 수 있던 거 같은데 해서 히스토리를 좀 조사해봤습니다. SpringBoot 공식 사이트에서 버전별 릴리즈 노트를 볼 수 있는 문서인데 2.3에 관련된 문서입니다. (https://github.com/spring-projects/spring-b.. Spring 2021. 9. 4. [Algorithm] 백준 17140(BOJ 17140) 이차원 배열과 연산 문제풀이!! (Java) 안녕하세요 Coding-knowjam입니다. 오늘은 백준 온라인 저지에 있는 17140번 이차원 배열과 연산 문제를 풀어보겠습니다. 문제에 대한 링크는 아래에 있으니 문제를 먼저 읽고 와주시길 바랍니다. https://www.acmicpc.net/problem/17140 1. 문제 설명 해당 문제는 주어진 내용에 따라 코드로 구현을 하면 풀 수 있는 문제입니다. 문제 자체에서 주어진 배열의 최대 크기도 100X100이기 때문에 시간 복잡도도 크게 고려하지 않고 풀 수 있습니다. 주어진 조건 중에 놓치기 쉬운 부분은 다음과 같습니다. 시간을 100초까지 고려하지 않고 99초에 끝내는 경우 연산 중간중간에 0이 들어가는 경우가 생기는데 이를 고려하지 않고, 0일 때 연산을 마무리하는 경우 연산 과정에서 열 .. Algorithm & Data Structure/문제풀이 2021. 8. 28. 이전 1 2 3 4 5 6 다음 728x90