본문 바로가기

분류 전체보기

[spring] 자바 기초 ArrayList ArrayList 정의 : 크기를 동적으로 조정할 수 있는 배열(array)을 구현한 클래스. 사용성 c++의 vector와 유사한 개념으로 매우 유용. 메서드 get(index) : 해당 인덱스에 있는 요소를 얻음. set(index, element) : 해당 인덱스의 요소를 변경 add(element) : 리스트에 요소를 추가 remove(index) : 특정 인덱스의 요소를 삭제 import java.util.ArrayList; public class ArrayListExample { public static void main(String[] args) { ArrayList names = new ArrayList(); names.add("kim"); names.set(0, "jeong"); name.. 더보기
[spring] java 기초 개념 Map, HashMap Map 정의 :데이터를 키-값(key-value) 쌍으로 저장하는 자료구조를 제공하는 인터페이스 키는 중복 허용 x, 값은 중복 허용 사용성 데이터를 검색하거나 특정 키에 대한 값에 접근하는데 빠른 속도를 제공하는 유용한 자료구조. 구현 클래스 : HashMap, TreeMap, LinkdedHashMap 등... 메서드 put(key, value): 지정된 키와 값을 Map에 추가. 만약 이미 동일한 키가 존재한다면 기존 값을 새 값으로 덮어씀. get(key): 지정된 키에 해당하는 값을 반환. 만약 키가 존재하지 않으면 null을 반환. containsKey(key): 지정된 키가 Map에 존재하는지 여부를 확인. containsValue(value): 지정된 값이 Map에 존재하는지 여부를 확인... 더보기
[알고리즘] (BFS) 경쟁적 전염 (from. 이코테) 문제 N x N 크기의 시험관이 있습니다. 시험관은 1 x 1 크기의 칸으로 나누어지며. 특정한 위치에는 바이러스가 존재할 수 있습니다. 바이러스의 종류는 1 ~ K번까지 K가지가 있으며 모든 바이러스는 이 중 하나에 속합니다. 시험관에 존재하는 모든 바이러스는 1초마다 상, 하, 좌, 우의 방향으로 증식하는데, 매초 번호가 낮 은 종류의 바이러스부터 먼저 증식합니다. 또한 증식 과정에서 특정한 칸에 이미 어떠한 바이러스가 있다면, 그곳에는 다른 바이러스가 들어갈 수 없습니다. 시험관의 크기와 바이러스의 위치 정보가 주어졌을 때. S초가 지난 후에 (X, y)에 존재하는 바이 러스의 종류를 출력하는 프로그램을 작성하세요. 만약 S초가 지난 후에 해당 위치에 바이러스가 존 재하지 않는다면, 0을 출력합니다.. 더보기
[알고리즘] (DFS, 순열) 연산자 끼워넣기 (from. 이코테) 문제 N개의 수로 이루어진 수열 A,,42, ..., 1이 주어집니다. 또, 수와 수 사이에 끼워 넣을 수 있는 N-1개의 연산자가 주어집니다. 연산자는 덧셈 (+), 뺄셈(-), 곱셈(x), 나눗셈(: )으로만 이루어 져 있습니다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서. 수식을 하나 만들 수 있는데 이때 주어진 수의 순서 를 바꾸면 안됩니다. 예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈 (+) 2개, 뺄셈 (-) 1개, 곱셈(x) 1개, 나눗셈(:) 1개인 경우에는 총 60가지의 식을 만들 수 있습니다. 예를 들 어. 다음과 같은 식을 만들 수 있습니다. 식의 계산은 연산자 우선순위를 무시하고 앞에서부터 진행해야 합니다. 또. 나눗셈은 정수.. 더보기
[알고리즘] (bfs 유형) 최단거리의 도시 찾기 문제 어떤 나라에는 1 ~ N번까지의 도시와 M개의 단방향 도로가 존재합니다. 모든 도로의 거리는 1입 니다. 이때 특정한 도시 X로부터 출발하여 도달할 수 있는 모든 도시 중에서, 최단 거리가 정확히 K 인 모든 도시의 번호를 출력하는 프로그램을 작성하세요. 또한 출발 도시 ※에서 출발 도시 X로 가 는 최단 거리는 항상 0이라고 가정합니다. 예를 들어 N = 4, K = 2, X = 1일 때 다음과 같이 그래프가 구성되어 있다고 합시다. 이때 1번 도시에서 출발하여 도달할 수 있는 도시 중에 서, 최단 거리가 2인 도시는 4번 도시뿐입니다. 2번과 3번 도시의 경우, 최단 거리가 1이기 때문에 출력하지 않습니다. 입력 • 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K. 출발 도시의 번호.. 더보기
[알고리즘](bfs 유형) 음료수 얼려먹기 (from 이코테) 문제 N x M 크기의 얼음 틀이 있다. 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된 다. 구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주한 다. 이때 얼음 틀의 모양이 주어졌을 때 생성되는 충 아이스크림의 개수를 구하는 프로그램을 작성 하시오. 다음의 4 x 5 얼음 틀 예시에서는 아이스크림이 총 3개 생성된다. 00110 00011 111111 00000 입력 첫 번째 줄에 얼음 틀의 세로 길이 N과 가로 길이 M이 주어진다. (1≤ N, M ≤ 1,000) 두 번째 줄부터 N + 1 번째 줄까지 얼음 틀의 형태가 주어진다. 이때 구멍이 뚫려있는 부분은 0. 그렇지 않은 부분은 1이다. 출력 한 번에 만들 수 있는 아이스크림의 개.. 더보기
[알고리즘] bfs (c++) queue를 이용해야 하기에 dfs보다 조금더 복잡하다.. 이런식으로 벡터와 큐 등 자료구조에 익숙해져야 겠다. 헤더를 인클루드 하는데 문제가 있는데, 아마 m1맥북을 사용해서 그런것 같다... #include #include #include std::vector graph[9]; boolvisited[9]; voidbfs(int start) { queue q; q.push(start); visited[start]= true; while(!q.empty()) { intx = q.front(); q.pop(); std::cout 더보기
[알고리즘] dfs알고리즘 (c++) 최근 c++을 공부하며, 그동안 공부해왔던 알고리즘들을 c++로 다시 작성해보고 있다. 벡터의 사용에 친숙해져야 하며, 코딩테스트의 경우 전역변수 사용이 자유롭기에 그 이점을 적극적으로 활용해야겠다. #include #include boolvisited[9]; std::vector graph[9]; voiddfs(int x) { visited[x] = true; std::cout 더보기