본문 바로가기

분류 전체보기

(229)
[백준] 17837. 새로운 게임2 https://www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하나의 말 위에 다른 말을 올릴 수 있다. 체스판의 각 칸은 흰색, 빨간색, 파란색 중 하나로 색칠되어있다. 게임은 체스판 위에 말 K개를 놓고 시작한다. 말은 1번부터 K번까지 번호가 매겨져 있고, 이동 방향도 미리 정해져 있다. 이동 방향은 위, 아래, 왼쪽, 오른쪽 www.acmicpc.net 2019 하반기 삼성 공채 SW 역량테스트 시뮬레이션 문제 입니다. 제가 봤던 시험 시간에 나온 두 문제중 하나 였는데 게리멘더..
서로소 집합(Disjoint-set) 서로소 집합 : 서로소 또는 상호 배타 집합들은 서로 중복 포함된 원소가 없는 집합들이다. 집합에 속한 하나의 특정 멤버(representative) 를 통해 각 집합들을 구분한다. 상호배타 집합을 표현하는 방법 : 연결리스트, 트리 상호배타 집합 연산 : Make-Set(x), Find-Set(x), Union(x, y) CODE 1. Make-Set(x) void makeSet(int x) { parents[x] = x; } 2. Find-Set(x) int findSet(int x) { if(x == parents[x]) return x; else { parents[x] = findSet(parents[x]); return findSet(parents[x]); } } 3. Union(x, y) vo..
프림 알고리즘 (Prim Algorithm) 하나의 정점에서 연결된 간선들 중에 하나씩 선택하면서 MST를 만들어 가는 방식 정점을 하나씩 선택할 때마다 간선을 추가하면서 트리 확장 두 종류의 상호배타집합 정보를 유지 - 트리 정점들(tree-vertices) : MST를 만들기 위해 선택된 정점들 - 비트리 정점들(non-tree vertices) : 선택 되지 않은 정점들 동작과정 임의 정점을 하나 선택해서 시작 선택한 정점과 인접하는 정점들 중의 최소 비용의 간선이 존재하는 정점을 선택 모든 정점이 선택될 때까지 1, 2 과정을 반복 import java.util.Arrays; import java.util.Scanner; /* 7 11 0 1 2 0 2 2 0 5 8 1 2 1 1 3 19 2 5 5 3 4 7 3 5 11 3 6 15 4 ..
[SWEA] 1251. [S/W 문제해결 응용] 4일차 - 하나로 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15StKqAQkCFAYD&categoryId=AV15StKqAQkCFAYD&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com Kruskal import java.util.Arrays; import java.util.Scanner; public class Solution { static class Edges implements Comparable { int v1; int v2; long cost; public Edges(int v1, int ..
크루스칼 알고리즘 (Kruskal Algorithm) 1. 신장트리 : 그래프의 모든 정점과 간선의 부분집합으로 구성되는 트리 2. 최소신장트리(MST) : 신장트리 중에서 사용된 간선들의 가중치 합이 최소인 트리 - 무방향 가중치 그래프 - 그래프의 가중치의 합이 최소여야 한다. - N개의 정점을 가지는 그래프에 대해 반드시 (N-1) 개의 간선을 사용해야 한다. - 사이클을 포함해서는 안된다. 3. Kruskal Algorithm - 탐욕적인 방법을 이용하여 가중그래프(가중치를 간선에 할당한 그래프)의 모든 정점을 최소비용으로 연결하는 최적해를 구하는 것 - 간선을 하나씩 선택해서 MST를 찾는 알고리즘 - 동작과정 ① 그래프의 간선들을 가중치의 오름차순으로 정렬한다. ② 정렬된 간선 리스트에서 순서대로 사이클을 형성하지 않는 간선을 선택한다. a. 가..
[프로그래머스] 문자열 압축 https://programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작년 하반기 카카오 코딩테스트 문제입니다. 온라인으로 봤던 기억이 있는데 그때는 풀어보려고 해도 안풀렸었는데 거의 반년?이 지나고 다시 침착하게 풀어보니까 풀 수 있었습니다. 처음에 코드를 제출했는데 5번 테스트케이스만 오답이 나왔습니다. 질문하기를 눌러보니 문자열 길이가 "a" 같은 1짜리가 들어오게 되면 처음에 설정해 두었던 MAX_VALUE 값이 나와서 틀리는 거였습니다. [ 문제 풀이 ] 1. len ..
[SWEA] 9760. Poker Game import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Solution { static String[] cards; static int[] suit, rank; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = null; int T = Integer.parseInt(br.readLine()..
JDBC API 연습문제 Mysql 과 연동하여 상품정보를 DB에 저장하고 검색, 수정, 삭제 하는 프로그램을 구현해보자. - DAO.java import java.util.List; public interface DAO { public void insertProduct(String prCode, String name, int price); public void deleteProduct(String prCode); public void updateProduct(); public List allViewProduct(); public Product findProduct(String prCode); } - Product.java public class Product { private String code; private String ..