본문 바로가기

알고리즘

[백준 11047][자바] 동전 0 대표적인 그리디 문제 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int a = scan.nextInt(); int arr[] = new int[n]; int ans = 0; for(int i=0; i=0;i--) { //가장 뒤가 제일 가치가 높으니까 거꾸로 돌린다 if(arr[i] 값을 넣어준다 break; } } ans += a / arr[chk]; // 그 돈의 가치로 나눈 몫을 ans 에 더하기 a = a % arr[chk]; // 그돈의 가치로 최대한 넣은 뒤 남은 금액 넣.. 더보기
11월 개발일지 ,,,,ㅎ,,, 마지막 개발 일지가 8월이네...?! 이게 무슨일이지...😥 우선 그 동안 파견을 나가게 되어 새로운 환경에 적응하고 일하느라 바빴고, 여행도 다니고, 공부도 열심히(나혼자 나름) 하고, 시험도 봤다! 회사 다니면서 공부를 하고 이직 준비를 하는 것은 정말 쉽지 않다는 것을 느꼈다. 또 일이^^ 많아지면서 책상에 다시 앉기가 힘들어졌다.. 왜 일 없을 때 공부 하라는지 알겠음.. 시험도 몇번 보고 자소서도 쓰니까 내가 부족한 부분이 너무 많아 자괴감에 빠져버렸다~ 공부 할건 너무나 많고,,, 난 너무 부족하고,, 좀더 일찍 시작했더라면...ㅎㅎ^^ 핑계는 그만~ 우선 지금 회사에서 ^혼^자^ 홈페이지를 개발하게 되었다. 유지보수만 하던 회사에서 이렇게 개발 할 수 있을 줄은 몰랐다... .. 더보기
[백준 1913][자바] 달팽이 달팽이 모양으로 숫자 넣는 문제 어느부분에서 방향을 바꾸고 / 기존의 값에 덮어쓰지 않게 하는것이 포인트 근데 메모리공간이랑 시간이 너무 걸려서 좀 다시 짜봐야할듯 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int w = scan.nextInt(); int[][] arr = new int[w+1][w+1]; int findn = scan.nextInt(); int[] x = {1,0,-1,0}; int[] y = {0,1,0,-1}; int now = 0; // x y배열 방향조절하는 숫자 0: 다운 1:오른쪽 2:업 3:왼.. 더보기
[프로그래머스][자바] 네트워크 문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 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 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다. 🙄.. 더보기
[프로그래머스] 탑 : 자바 스택 문제 설명 수평 직선에 탑 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 이하인 자연수입니다. 타겟 .. 더보기