본문 바로가기

프로그래머스

[프로그래머스][자바] 네트워크 문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 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 .. 더보기
[프로그래머스] 다리를 지나는 트럭 : 자바 🤞내가 푼 풀이( HINT )🤞 1. time을 저장할 배열 : 다리전체를 건너는것 체크 위해서 2. bridge 큐 : 말그대로 다리 역할. 다리에 올라가면 데이터 넣어주고 다리에서 빠져나오면 빼고 3. now : 현재 위치 4. first : 다리에서 처음에 있는 위치 5. sum_w : 다리에 올라가 있는 트럭들의 무게 총 합 💥각자 다리를 지나가는 시간을 time변수에 넣어주고 first의 위치에 있는 time 값이 다리 길이랑 같아지면 큐(bridge)에서 빼냄. (1초 = 1만큼간다) 그리고 first += 1을 해서 first값 이동 💥 다리가 지탱할수 있는 무게(weight) - 다리에 있는 트럭들의 합(sum_w)를 빼서 그다음 트럭 무게가 들어갈 수 있으면 큐에 값을 넣어준다 (= 그 .. 더보기
[프로그래머스] 탑 : 자바 스택 문제 설명 수평 직선에 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다른 탑으로 송신되지 않습니다. 예를 들어 높이가 6, 9, 5, 7, 4인 다섯 탑이 왼쪽으로 동시에 레이저 신호를 발사합니다. 그러면, 탑은 다음과 같이 신호를 주고받습니다. 높이가 4인 다섯 번째 탑에서 발사한 신호는 높이가 7인 네 번째 탑이 수신하고, 높이가 7인 네 번째 탑의 신호는 높이가 9인 두 번째 탑이, 높이가 5인 세 번째 탑의 신호도 높이가 9인 두 번째 탑이 수신합니다. 높이가 9인 두 번째 탑과 높이가 6인 첫 번째 탑이 보낸 레이저 신호는 어떤 탑에서도 수신할 수 없습니다. 송.. 더보기
[프로그래머스] 타겟넘버 [깊이 / 너비 우선 탐색 (DFS/BFS)] 문제 설명 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1 이상 50 이하인 자연수입니다. 타겟 .. 더보기