- Today
- Total
목록Category (318)
개발하는 고라니
1486번: 등산 첫째 줄에 산의 세로크기 N과 가로크기 M 그리고, T와 D가 주어진다. N과 M은 25보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 지도가 주어진다. T는 52보다 작거나 같은 자연수이고, D는 1,000 www.acmicpc.net [Dijkstra / Floyd Warshall] 모든 정점에서 다른 모든 정점에 대한 최단 경로를 구하는 문제이므로 다익스트라를 이용하거나, 플로이드 와샬을 이용해도 무방할 듯 하다. 나는 N x M개의 모든 정점에 대해 다익스트라 알고리즘을 수행하였다. 우선 map이 알파벳으로 주어지는데, 각 알파벳은 그에 맞는 높이를 정수형으로 가진다. 따라서 map을 저장할 때 char가 아닌 int로 변환해서 저장하였다. for(int i=1; i
10159번: 저울 첫 줄에는 물건의 개수 N 이 주어지고, 둘째 줄에는 미리 측정된 물건 쌍의 개수 M이 주어진다. 단, 5 ≤ N ≤ 100 이고, 0 ≤ M ≤ 2,000이다. 다음 M개의 줄에 미리 측정된 비교 결과가 한 줄에 하나씩 www.acmicpc.net [Floyd Warshall (플로이드 와샬)] 일반적인 플로이드 와샬 알고리즘으로 모든 정점에서 다른 모든 정점으로의 최단 거리를 구한다. 이 때 가볍고 무겁다는 것은 양방향이 아닌 단방향이다. 그러므로 a정점에서 b정점에 대하여 어느 것이 가볍고 무거운지 모르고, 마찬가지로 b정점에서 a정점에 대하여 어느 것이 가볍고 무거운지 모른다면 (distance[a][b] == INF && distance[b][a] == INF) 비교 결과를 ..
16398번: 행성 연결 홍익 제국의 중심은 행성 T이다. 제국의 황제 윤석이는 행성 T에서 제국을 효과적으로 통치하기 위해서, N개의 행성 간에 플로우를 설치하려고 한다. 두 행성 간에 플로우를 설치하면 제국의 함 www.acmicpc.net [Kruskal, 최소 스패닝 트리] 문제에서 주어지는 인접 행렬의 정보를 받아 시작 정점(h), 도착 정점(tg) 그리고 비용(c)를 List에 담아 오름차순 정렬 후 크루스칼 알고리즘을 수행한다. 이 때 주의할 점은 비용은 최대 100,000,000이므로 비용을 더할 때 int가 아닌 long에 담아주도록 한다. # Code import java.io.BufferedReader; import java.io.IOException; import java.io.In..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sX6Wf/btqZpfqcOZf/UtFeff2BAKTnOl2mzBnJ51/img.png)
Spring Security를 적용하여 사용자를 등록해 로그인에 성공했다면, thymeleaf에서 사용자의 정보를 출력할 수 있다. 'th:'를 쓸 것 같지만, Thymeleaf 공식 docs를 보면 예상과 다르게 JSP에서 쓰던 taglib를 사용한다. Spring Security를 JSP와 함께 써본 사람은 알겠지만 'sec:authentication="" '와 같은 것을 사용했었다. Thymeleaf + Spring Security integration basics - Thymeleaf Have you switched to Thymeleaf but your login and error pages are still using JSP? In this article we will see how to co..
2660번: 회장뽑기 입력의 첫째 줄에는 회원의 수가 있다. 단, 회원의 수는 50명을 넘지 않는다. 둘째 줄 이후로는 한 줄에 두 개의 회원번호가 있는데, 이것은 두 회원이 서로 친구임을 나타낸다. 회원번호는 1부터 www.acmicpc.net [BFS * n] 각 사람의 친구 관계를 인접 리스트에 저장. n명에 대하여 BFS를 수행하였다. 이 때 Queue에 들어갈 원소는 2개이다. i 번째 사람, 그리고 1점에 해당하는 친구인지, 2점에 해당하는 친구인지, 혹은 그 이상 점수에 해당하는 친구인지... BFS를 수행하며 친구의 최대값을 저장하고 있다가 BFS의 while문을 빠져나갈 때 저장하고 있던 최대값을 그 사람의 점수를 저장하는 배열 person[]에 담는다. 그리고 저장된 최대값들 중 가장 ..
2458번: 키 순서 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 www.acmicpc.net [플로이드-와샬] 일반적인 플로이드-와샬을 이용하여 모든 사람간의 키 순서를 구하면 된다. 여기까지는 유추하기 쉬울 수 있으나, 특정 사람 i가 몇 번째로 큰 것 인지에 대한 것을 판단하기는 약간 어려울 수 있다. 만일 특정 사람 i가 다른 사람 j에 대하여 키 관계를 모를 때, j 입장에서도 i의 키 관계를 모른다면 그것은 자신이 몇 번째로 큰 사람인지 모르는 것과 마찬가지이다. # Code import java.io.BufferedReader; import j..
14442번: 벽 부수고 이동하기 2 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000), K(1 ≤ K ≤ 10)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 항상 0이라고 가정하자. www.acmicpc.net [BFS] 백준의 벽 부수고 이동하기 시리즈 2번째 문제. 1번 문제의 경우 벽을 1개만 부실 수 있었다면 이 문제는 최대 10개를 부실 수 있다. 따라서 1과 유사하게 풀되, 배열의 사이즈를 조금 늘리면 되겠다. int[][][] dist = new int[1001][1001][11]; 큐에 들어가야할 원소의 개수는 3개이다. 다음 위치의 y좌표, x좌표, 벽을 몇 개 부수었는지. 그래서 만약 다음 위치가 벽이고, 현재 k개 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bf1Cjg/btqYTOttNJQ/Ofa5znhpxH2wgNo6s1SeUK/img.png)
자바는 대표적인 객체지향 언어 중 하나이다. 그러나 '객체'가 무엇인지도 모르고 쓰는 경우가 있다. 우선 객체란 무엇일까? 사실 객체(Object)는 어려운 개념이 아니다. 우리 주변에 있는 모든 것이 객체이다. TV, PC, 노트북, 스마트폰, 사람, 의자 등등... 실세계는 객체들의 집합이다. 실세계의 객체들은 자신만의 고유한 특성(State)과 행동(Behavior)을 가지며 다른 객체들에게 행동을 요구하거나 정보를 주고받는 등 상호 작용을 하면서 살아간다. 컴퓨터 프로그램의 예를 들면, 테트리스 게임에 나오는 각 블록들, 한글 프로그램의 메뉴나 버튼들이다. Java의 객체 지향 특성 객체지향 언어는 실세계의 객체를 프로그램 내에 표현하기 위해 클래스(Class)와 객체(Object) 개념을 도입하..