백준

알고리즘/백준

[BFS] 백준 7576번 토마토 - JAVA

울퉁 불퉁 멋진 몸매에~ 새빨간 옷을 입고~ 새콤달콤 향기 풍기는~ 멋쟁이 토!마!토! 토마토~ 1. 문제 출처 1일 1알고리즘을 풀기위해 노력하는 나... 제법 멋져 2. 설계 1) 익은 토마토 4방으로 안익은 토마토가 익는다. 그렇기 때문에 익은 토마토들의 좌표를 큐에 넣고, 그 토마토들부터 4방 탐색을 시작해야겠다고 생각했다. 때문에 데이터를 입력받음과 동시에 익은 토마토(1)인 곳을 큐에 넣어줬다. 큐에 넣어주면서 이 공간의 토마토는 이미 익었다는 표시로 visited = true를 해주었다. for(int i=0;i

알고리즘/백준

[MST] 백준 1922번 네트워크 연결 - JAVA (프림 & 크루스칼 2가지 풀이)

오늘 수업 끝나기 1시간 전에 선택한 문제 프림으로 풀라다가 생각안나서 다익스트라로 풀었는데, 민성이 오빠의 이해할 수 없다는 표정과 호진이 오빠의 웃음소리가 선명하다. 시무룩 MST 문제를 풀기 위해 내가 선택할 수 있는 알고리즘은 프림과 크루스칼 둘 중 하나였는데, 간지나 보인다고 크루스칼로 풀라는 오빠들의 말을 뒤로하고, 프림으로 풀 것이다. +23.04.16 추가 시험공부하면서 크루스칼로도 풀어보았다. 1. 문제 출처 1922번: 네트워크 연결 이 경우에 1-3, 2-3, 3-4, 4-5, 4-6을 연결하면 주어진 output이 나오게 된다. www.acmicpc.net 2. 설계 모든 노드를 최소 비용으로 연결해야 하기 때문에 MST 문제이고, 크루스칼 또는 프림으로 풀어야 한다. (그 외 더 ..

알고리즘/백준

[너비우선탐색] 백준 5427번 불 - JAVA

BFS DFS가 좀 익숙해졌으니 언젠가 태영이 오빠가 추천해준 '불'이라는 문제를 풀어보겠다. 불! 이라는 문제도 있는 거 같은데, 이 문제가 더 까다로운 모양이다. 1. 문제출처 5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에 www.acmicpc.net 갖은 고난을 맞이하여 겨우 풀어 낸 문제 ... Let's GO! 2. 설계 1) 실패한 설계 그렇다... 처음에는 각각 깊이를 파고들어 1 경로씩 탐색하고자 DFS로 접근했었다... 근데 문제가 있었으니... 바로 배열을 주고 받을 때 같은 시간 대 별로 같은 배열을 공유하지 못한다는 점이다. ..

알고리즘/백준

[깊이우선탐색] 백준 2668번 숫자고르기 - JAVA

오늘은 나의 실패썰과 다른 분의 좋은 코드를 보며 공부한 나의 일기라고 할 수 있다. 나는 처음에 부분집합으로 해당 문제를 풀다가 '메모리 초과'가 떴었다. 그래서 내가 아직 풀기에는 어려운 문제라고 판단하여 다른 분의 코드를 보았다. 내가 참고한 블로그는 아래와 같다. [백준-2668]-[DFS]-숫자고르기 문제링크 : https://www.acmicpc.net/problem/2668 이 문제는 사이클이 발생할 때 까지 DFS로 탐색을 진행하면 된다. 만약 사이클이 발생하지 않는다면 visited 정보를 초기화 해주고 사이클이 발생했다면 방 pangsblog.tistory.com 1. 문제출처 2668번: 숫자고르기 세로 두 줄, 가로로 N개의 칸으로 이루어진 표가 있다. 첫째 줄의 각 칸에는 정수 1..

알고리즘/백준

[너비우선탐색] 백준 10026번 적록색약 - JAVA

1. 문제 출처 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 2. 설계 [입력 예시] 5 RRRBB GGBBB BBBRR BBRRR RRRRR 첫 값은 배열의 크기이다. 다음줄부터는 빨강(R) 파랑(B) 녹색(G) 정보가 어떻게 되어있는지를 받는다. 일반인은 정확하게 3가지 색을 구분할 수 있지만, 적록색약인은 빨강, 녹색을 같은 색으로 본다. 나는 다음과 같은 루트로 문제를 풀었다. 1) 영역을 확인했는지 체크하기 위해 visited 배열을 만든다. 2) 메인 함수에서 2중 for문으로 입력예시의 ..

알고리즘/백준

[그리디 알고리즘-Java] 1541번 잃어버린 괄호

1. 그리디 알고리즘이란? 탐욕스런 알고리즘이다. 미래를 생각하지 않고, 당장 눈 앞에 보이는 최적의 선택을 하는 것이다. 때문에 간단하고 빠르지만, 항상 최적의 답이 보장되지는 않는다. 2. 그리디 알고리즘이 최적의 답을 갖는 문제는? 1) 문제의 일부분에서 전체의 해답을 찾을 수 있는 경우 2) 다이나믹 프로그래밍처럼 모든 부분을 고려하는 것이 아닌 탐욕적 선택만 하더라도 최적인 답을 찾을 수 있는 경우 예를 들면 거스름돈을 가장 적게 거슬러주는 문제가 있다. 그리디 알고리즘 참고 문서 : https://seungjuitmemo.tistory.com/23 알고리즘: 그리디 알고리즘(Greedy Algorithm) 공부하고 예제 한번 풀어보자! 그리디 알고리즘이란(Greedy Algorithm)이란? ..

알고리즘/백준

1085번 직사각형에서 탈출

1) 사이트 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. www.acmicpc.net 2) 문제 저는 이 문제를 보고 최단 거리를 구하는 문제인 줄 알았지만, 어느 방면에서든 가장 가까운 거리의 직사각형의 경계선에만 닿으면 되는 문제였습니다. 그래서 제가 고려한 거리로는 출발지점(x, y)에서 1)왼쪽 2)오른쪽 3)위쪽 4)아래쪽이었습니다. 대각선은 삼각비 1:1:루트2 생각하니 대각선으로 가는 길이 더 멀다고 판단되어 위처럼 4가지로만 따져보게 되었습니다. 3) 파이썬 코드 ver1 - 복잡한 코드 x,y,w,h=ma..

알고리즘/백준

10809번 알파벳 찾기

1) 사이트 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 2) 문제 간단히 말하면 a부터 z까지 몇 번째로 처음 발견되는지를 출력하면 됩니다. 3) 파이썬 코드 alpha=input() al_li=list(alpha) order_li=[str(-1)]*100 number=0 for i in al_li: storage=ord(i)-97 if order_li[storage]!='-1': number=number+1 continue else: order_li[storage]=str(number) nu..

SHIN SANHA
'백준' 태그의 글 목록 (2 Page)