본문 바로가기

분류 전체보기

(106)
SWEA - 키 순서 java 1) 2차원 배열에 나보다 크면 -1, 작으면 1로 표시한다. -> 반대로 표시해도 상관없음 2) dfs처럼 나보다 크면 그 숫자로 파고들어간다 -> 파고들어갈수 있을때까지 간다 3) 나보다 작은수도 2번과 같은 원리로 4) 2), 3)에서 몇개의 숫자를 파고들수있는지 계산하고 그 합이 n-1이면 전체 정답+1 처리한다. package a0406; import java.util.*; import java.io.*; public class 키순서 { static int[][] arr ; static int[]visit; static int numcnt; public static void main(String[] args) throws Exception{ BufferedReader br = new Buffe..
SWEA - 오! 나의 여신님 JAVA 최소시간을 구해야하므로 bfs를 이용한다. 악마는 수연이와 빈 곳을 침범 가능 수연이는 빈곳으로만 이동가능 여신을 만났을때 종료! package a0406; import java.util.*; import java.io.*; /* 악마의 손아귀를 피해서 최소시간에 여신에게 가야함 악마의 손아귀 -> 악마 위치 기준으로 1초마다 상하좌우로 퍼져나감 수연 -> 1초마다 상하좌우로 이동 가능 최소시간은? */ public class SWEA오나의여신님 { static char[][] arr; static int[][] visit; static int sero ; static int garo ; static int starti;static int startj; static int angeli;static int..
백준2239 - 스도쿠 java package a0406; import java.util.*; import java.io.*; /* 2차원배열에서 0인곳 dfs돌면서 조건 만족하는 수 완탐? 조건 1) 가로 2) 세로 3) 범위사각형 */ public class 백준2239_스도쿠 { static int[][] arr = new int[9][9]; static ArrayList zerolist = new ArrayList(); static int allflag = 0; static void dfs(int cnt) { //System.out.println(cnt); //print(); if(allflag==1)return; if(cnt==zerolist.size()) { for(int i=0; i
SWEA - 벽돌깨기 java 중간에 있는 벽돌이 깨졌을때 없어지는 구현을 자동적으로 처리하기위해 list를 이용했다. 계속 값복사를 해줘야해서 불편하긴함 package a0405; import java.util.*; import java.io.*; /* 구슬 개수만큼 던질때 최대한 벽돌을 많이 부셔야됨 -> 구슬개수만큼 중복순열 돌리면 될듯? 1) 구슬 놓는다 2) 놓는 위치에 따라 영향 미치는 범위를 다 체크 3) 체크한 범위를 다 0으로 바꾸고 다음 중복순열로 돌림 4) 구슬 개수만큼 중복순열 돌리면 없어진 벽돌수 체크 -> 최대값 갱신 구슬 영향범위에 따라 없어지는 부분 list로 하면 편할듯? */ public class 벽돌깨기 { static int ballnum; static int sero; static int gar..
백준15961 - 회전초밥 java 전형적인 투포인터 문제다 map 자료구조를 이용하여 풀었다. package a0405; import java.util.*; import java.io.*; /* 투포인터 이용하면 될듯? */ public class 백준15961_회전초밥 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int dish = sc.nextInt(); int menu = sc.nextInt(); int len = sc.nextInt(); int plus = sc.nextInt(); int[] arr = new int[dish]; for(int i=0; i
SWEA - 파핑파핑 지뢰찾기 JAVA package a0404; import java.util.*; import java.io.*; /* 1) 2차원배열 탐색하면서 8방탐색했을때 모두 지뢰 없는곳 큐에 넣는다 2) 큐에 있는 좌표들 순서대로 꺼내서 8방 원소들 visit처리, 3) 8방원소들 visit처리하면서 또 8방지뢰없는 곳이라면 큐에 또 넣음 4) 2,3 큐 원소 없을때까지 반복 5) visit처리 안되어있는 부분만큼 result++ */ public class 파핑파핑지뢰찾기 { static int size; static char[][] arr; static int[][] visit; static int[] di = {-1, -1, -1, 0, 1, 1, 1, 0}; static int[] dj = {-1, 0, 1, 1, 1, 0..
SWEA - 프로세서 연결하기 JAVA package a0404; import java.util.*; import java.io.*; /* 우선순위 -> 1) 연결 많이 2)선 짧게 1) 연결해야되는 곳의 위치를 리스트에 담는다 2) 리스트에 있는 좌표를 돌면서 중복순열을 돈다(연결가능한곳만) 3) 중복순열은 사방탐색으로 일직선 쭉 이을수 있으면 그방향으로 선 놓기 4) 리스트 사이즈만큼 탐색했을때 우선순위대로 max값 계산 */ public class 프로세서_연결하기 { static int size; static int[][] arr; static int[][] cannot; static ArrayList list;//전선 이어야될 리스트 static int[] di = {-1, 0, 1, 0}; static int[] dj = {0, 1..
[개발 일기] 2022-04-02 프로그래머스 데브매칭 상반기 후기 프로그래머스에서 진행하는 데브매칭 코테를 봤다. 총 4문제(알고리즘 3문제, sql1문제)로 구성되어 있으며 2시간의 시간제한이다. 결과먼저 말하면 1번(시간초과), 2번(O), 3번(못품), sql(O) 이렇게 2솔~2.5솔이다. 과정 자체는 만족한다. 쓸데없는 부분에서 버벅대는 시간낭비가 없었다. 1번 번호마다 거리를 주고 좌표상에서 표현할 수 있는 경우를 정렬해서 배열로 반환하는 문제 정렬을 몇번 해야했고 로직에 따라 시간초과가 나왔다. (내로직이 그랬다..) 끝나고 나서 푸는방법 찾아보니 어차피 내가 생각 못해낸 방법이어서 틀려도 억울하지 않았다. 2번 "?"를 포함해 (a,b,c)로 이뤄진 2차원배열이 입력으로 들어오며 ?에 (a,b,c)중 한개를 입력하여 완성된 2차원배열에서 같은 문자는 모두..