코딩/알고리즘
-
[ 백준 ][ 자바 ][ 1260 ] DFS와 BFS코딩/알고리즘 2019. 3. 1. 22:42
개념잡기엔 좋은 문제 같다.실패가 뜬 문제길래 봤었는데 파이썬으로 풀다 못풀었던 문제였다.dfs를 잘 모르는 상황에 bfs는 2차원 배열에서만 푸는 방법만 익히고 있어서그래프와 관련된 문제가 나오면 벙벙 하는 상황이었다 (지금)뭐...제대로 이해를 못하고 있단 얘기겠지그래서 이번 기회에 한번 풀어봤다 dfs는 일반적으로 재귀로 구현하는 것 같다 stack도 사용하지만 코드가 컴팩트한 측면에서는 재귀가 훨씬 좋아보인다문제의 예제에서 나와있는 정점들을 그림으로 그려본후에 그 다음에 방문할 점을 그려보니 구현이 매우 쉬워졌다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import jav..
-
[ 백준 ][ 자바 ][ 10026 ][ 적록색약 ]코딩/알고리즘 2019. 2. 9. 14:04
오늘은 조금 난이도 있는 문제를 풀어볼까 했는데 친구 밥사주는 약속이 있어 간단한 문제를 얼른 찾아서 풀고 가야겠다 싶어서 풀었다.이 문제는 일반 bfs에서 간단한 분기만 타주면 된다 문제에 출력은 두가지를 요구하는데 일반인과 , 적록색약이 볼수있는 색상 구분수다적록색약은 빨강과 초록을 같은색으로 인지하는데 그점에 유의하여 R과 G를 같은색상이라고 생각하면 아주 간단하게 풀린다 . import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; /* ..
-
[ 백준 ] [ 2583 ] [ 자바 ] 영역구하기코딩/알고리즘 2019. 2. 8. 16:40
간단한 문제 영역을 구하는 건 간단하다 . 약간 문제에서 헷갈릴수 있는게평소 알던 좌표 위치랑 정반대에 있다처음에는 좌표 컨버팅 모듈을 만들어야하나했는데그냥 좌표는 평상시 배열좌표를 써도 무방하다고 판단된다. 어처피 뒤집으면 똑같으니 ㅎ직사각형을 배열에다가 입력한다음에bfs로 문제를 해결해나가면 된다. 한방에 클리어는 정말 오래간만인거같다..import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Collections; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokeniz..
-
[ 백준 ][ 3184 ][ 양 ]코딩/알고리즘 2019. 1. 29. 22:44
백준 3184 양 문제오래간만에 다시 알고리즘 문제를 잡는다.너무 바빠서 손도 못댔다가 하루하루 하면서 다시 감을 익혀 보려고 한다. 감잡기용으로 전에 푼거말고 새로운 문제를 풀어보고 싶었는데 (사실 다 기억이 안남)간단해보이고 무엇보다도 정답률이 높아 선택했다구역마다 양과 늑대의 수를 세서 조건에 맞춰출력해주는 간단한 문제였다답지를 안보고 기억을 끄집어내면서 풀었는데얼추 기억은 나는 것 같다 그나저나 아이패드 가지고 싶다...ㅎ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import ja..
-
[백준][자바][2234 성곽]코딩/알고리즘 2018. 10. 20. 17:43
...이거 중복이 없다문제를 보니 비트마스크 연산을 이용하는 거 같은데 처음이라 골치가 아팠다내가 맨처음 생각 문제는 현재 내가 보고 있는 배열이랑 옆에 이동할 배열이랑벽이 중복되서예를 들어 현재 방이 11이란 값일경우 이렇게 되있고ㅡ|ㅡ 다음 우측도 11 같은 경우는 ㅡ|ㅡ 어떻게 할건가란 생각에 고민하다가 다른 분들 풀이를 검색하는데...아무리 봐도 이런부분에 대한 처리가 안되어있었다...뭐지...겁나게 고민하고 머리를 굴려보다가...생각해보니...설마 중복 된다는 말이 있었나 하고 찾아보니...아..글쿠나 없네...ㅎ저번에 풀던 문제랑 착각중인것이다.ㅎ...하...일단 풀자 ..ㅠ. package backjoon; import java.io.BufferedReader; import java.io.I..
-
[ 백준 ][ 자바 ][ 4485 녹색 옷 입은 애가 젤다지? ]코딩/알고리즘 2018. 10. 16. 01:04
일단 다익스트라 알고리즘과우선순위 큐에 대해서 알고가야만 하는 상황이다. 그냥 dfs 문제인줄 알았는데 전혀 아니었다..두개의 차이를 알아야하는게 필요 한 것 같다. 일단! 다익스트라 알고리즘은 한 정점에서 시작해서 연결되어 있는 다른 정점을 탐색하는데그 정점을 계속 업데이트 하면서 가장 짧은 길이를 저장하는 방식이다.난 dp 를 잘 모르는데 그냥 비슷해보인다. 일단 35 5 43 9 13 2 7라 했을경우 [0][0] - [0][1] - [0][2] | | | [1][0] - [1][1] - [1][2] | | | [2][0] - [2][1] - [2][2] 이런식으로 정점들이 이어져있고 각각 정점들 사이의 거리가 값이라 할수 있겠다.한번 하나 하나 해보자 현재 dist 배열은 전부 무한대이다( int..
-
[백준[자바][13458 시험감독]코딩/알고리즘 2018. 10. 13. 19:37
흠... 좀 고생좀 했다,,생각못한 반례가 하나 있었다일단 막 짜려하니까 힘들어서 조건을 생각해봤는데 일단 이문제는 총감독관이 배치가 되야하니 처음에 무조건 뺏다.거기서 남은 학생수에 대해서 분기점을 나눴는데코드를 보아하니 훨씬 간단하게 푼 사람들이 수두룩 하다..시뮬레이션 문제는 좀 더 열심히 풀어야겠다 ㅎㅎ import java.util.ArrayList; import java.util.Scanner; public class backjoon_13458_시험감독 { static long N, A,B, C; static ArrayList test_Room = new ArrayList(); static long viewer_Number = 0; public static void main(String[] a..
-
[백준][자바][11559 Puyo Puyo]코딩/알고리즘 2018. 10. 13. 15:28
후...아쉽다... 중력으로 내려오는 부분을 결국엔 다른 분들 코드를 참조해서 짯다뭔가 맞긴했는데 아쉬운 기분...이번 문제는 이런식으로 풀었다 1. 모든 터질수 있는 포인트를 구하고2 . 터트린다3. 다운시킨다. 4. 반복이걸 함수로 딱딱 하나씩 만들어서 풀었다. 가끔 드는 생각이 이렇게 함수로 만들어서 코드 라인이 길어지는게 맞나 싶다.맞으면 다 되겠지만..항상 가독성과 코드의 줄수,메모리를 중요시하나에서 고민이 된다. 난 근데 가독성을 최우선으로 두고 있다. 현재까지는..확실하게 잘하는 것도 아니지만.결국에는 프로그램은 나혼자 만드는게 아니니까.레거시코드는 최대한 지양하고 싶다. 사실 마음으로는 3중 포문이 잘 와닿지 않는다.. 정리해보자면 다운 시키기 위해서는 for (int i = 0 ; i <..