본문 바로가기

코딩테스트

[코테스터디] 1월 결산 혼자서는 코딩테스트 진도가 안나가서🙄🙄 친구 suna hong과 함께 코로나에 걸맞는 Zoom 스터디를 진행했다. 진행방법 : 맞는 시간대에 줌을 키고 같이 문제를 푼다 나중에 실전 문제로 들어가면 같이 시간을 정하고 풀계획!!!! 현재 이것이 코딩테스트다 책으로 같이 공부중이다! 그리고 그녀와의 추억들....*(사진 안찍은적도 몇번 있음) 더보기
[백준 2589] 보물섬 문제 이해는 했는데 방향을 잘못잡아서 꽤 헤맸던 문제... 1. DFS로 가장 큰 육지 구하고 2. BFS로 가장 거리 멀리 있는 두점 구하고! 3. 최단거리 구하고! ㅋ...ㅋ....ㅋ.ㅋㅋㅋㅋㅋㅋㅋ 📌최단거리 = BFS BFS로 구하면 최단거리가 나온다! 주어진 MAP에서 각 L이 있는 지점을 하나씩 시작점이라고 생각하고 BFS를 다 연산해본다. 그중 가장 큰 값이 나오는 것이 보물의 위치(서로 가장 먼값)면서 최단거리인값....! 사진을 보면 가장 큰 값이 멀리 있으면서 최단거리이다 데이터 테스트 해볼거 추가! https://www.acmicpc.net/board/view/40753 참고 했습니다. ex1) 답 : 2 2 2 LL LL ex2) 답 : 6 7 7 LWWWWWW WLLLWWW WLLL.. 더보기
[백준 1260][자바] DFS와 BFS 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력한다. V부터 방문된 점을 순서대로 출력하면 된다. .. 더보기
[백준 11729][자바] 하노이 탑 순서 알고리즘을 배울때 가장 먼저 책에 등장하는 하노이 탑... 문제 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다. 아래 그림은 원판이 5개인 경우의 예시이다. 입력 첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 20)이 주어진다. 출력 첫째 줄에 옮긴 횟수 K를 출력한다. 두 번째 줄부터 수행 과정을 출력한.. 더보기
[프로그래머스][자바] 네트워크 문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 제한사항 컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다. 각 컴퓨터는 0부터 n-1인 정수로 표현합니다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[.. 더보기
[프로그래머스][자바] 숫자야구 문제 설명 숫자 야구 게임이란 2명이 서로가 생각한 숫자를 맞추는 게임입니다. 각자 서로 다른 1~9까지 3자리 임의의 숫자를 정한 뒤 서로에게 3자리의 숫자를 불러서 결과를 확인합니다. 그리고 그 결과를 토대로 상대가 정한 숫자를 예상한 뒤 맞힙니다. * 숫자는 맞지만, 위치가 틀렸을 때는 볼 * 숫자와 위치가 모두 맞을 때는 스트라이크 * 숫자와 위치가 모두 틀렸을 때는 아웃 예를 들어, 아래의 경우가 있으면 A : 123 B : 1스트라이크 1볼. A : 356 B : 1스트라이크 0볼. A : 327 B : 2스트라이크 0볼. A : 489 B : 0스트라이크 1볼. 이때 가능한 답은 324와 328 두 가지입니다. 질문한 세 자리의 수, 스트라이크의 수, 볼의 수를 담은 2차원 배열 baseba.. 더보기
[프로그래머스][자바] 카펫 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 빨간색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 빨간색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 빨간색 격자의 수 red가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 빨간색 격자의 수 red는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다. 🙄.. 더보기
[프로그래머스] 기능개발 - 처음에 문제 이해를 잘못해서 바로전의 숫자보다만 크게 짰었다 그게 아니라 맨앞의 수랑 비교해서 한번에 나가는 것을 계산해줘야한다. - 맨앞의 수보다 큰 값을 만나면 다시 comp수 초기화해서 이 수와 비교 - 동시 배포 갯수를 보내는것!! - 스택/ 큐 부분 문제라 굳이 큐를 썼는데 다른 방법이 더 깔끔할듯.. 추가 케이스 예제를 참고하고 다시 풀어보자 (프로그래머스 boniato님 참고) 예제 1) progresses : [40, 93, 30, 55, 60, 65] speeds : [60, 1, 30, 5 , 10, 7] return : [1,2,3] 예제 2) progresses : [93, 30, 55, 60, 40, 65] speeds : [1, 30, 5 , 10, 60, 7] return .. 더보기