Programming/Java 7

프로그래머스 : 합동 택시 요금 - Level 3

https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 최단 거리 구하는 문제이며, 한명이 가는 길이 아닌, 두명이 택시를 타고 가는길에 어디까지 같이 가고 어디까지 따로 가야 최소 비용이 나오는가에 대한 문제이다. 2. 문제 풀이 최단 거리, 최소 비용인 만큼 다익스트라 알고리즘을 사용 이를 위해 PriorityQueue 사용 fares로 인접 행렬 생성 출발 지점으로부터 모든 정점 까지 최소 비용을 다익스트라로 구하기 → toget..

Programming/Java 2023.12.13

백준 15686 : 치킨 배달 [JAVA]

https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 1. 문제 설명 2. 문제 풀이 구현 해야 할 것 N X N 크기의 리스트를 받아 집, 치킨가게의 위치를 각각의 리스트에 받는다. M개의 치킨집을 골라야 하므로 조합을 이용하여 visited 배열을 만들어 M개의 자리에 true 값을 넣는다. 조합이 완성이 되면 각각의 집에서 고른 치킨집중에서 가장 가까운 거리를 총 거리에 더해준다 완성된 총 거리들중 가장 가까운 거리를 구한..

Programming/Java 2023.04.03

백준 16236 : 아기 상어 [JAVA]

https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 1. 문제 설명 2. 문제 풀이 구현 해야 할 것 보드에서 상어 위치 찾기 먹을 수 있는 물고기의 거리와 자리를 넣은 리스트 만들기 (bfs) 그중 거리, x축, y축으로 정렬하여 가장 근접한 물고기 찾고 상어 위치 바꾸기 바꿀 때마다 거리를 초로 계산해 더해주어 답 구하기 3. 코드 import java.io.BufferedReader; import java.io.IOException; ..

Programming/Java 2023.04.03

백준 1753 : 최단 거리 [JAVA]

https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net 1. 문제 설명 예제 입력 5 6 1 5 1 1 1 2 2 1 3 3 2 3 4 2 4 5 3 4 6 예제 출력 0 2 3 7 INF 2. 코드 import java.util.ArrayList; import java.util.Iterator; import java.util.PriorityQueue; import java.util.Scanner; public c..

Programming/Java 2023.03.28

백준 9663 : n_queen [java]

https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 1. 문제 설명 문제 N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (1 ≤ N < 15) 출력 첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다. 예제 입력 1 복사 8 예제 출력 1 복사 92 2. 문제 풀이 파이썬으로 전에 풀었던..

Programming/Java 2023.03.23

객체 지향 설계 원칙

1. 단일 책임 원칙 Single Responsibility Principle(SRP) 객체는 오직 하나의 책임을 가져야 한다. (객체는 오직 하나의 변경의 이유만을 가져야 한다.) 사칙연산 함수를 가지고 있는 계산 클래스가 있다고 치자. 이 상태의 계산 클래스는 오직 사칙연산 기능만을 책임진다. 만일 프로그램이 대대적으로 공사를 들어가게 되더라도 계산 클래스가 수정될만한 사유는 누가 봐도 사칙연산 함수와 관련된 문제뿐이다. 이처럼 단일 책임 원칙은 클래스의 목적을 명확히 함으로써 구조가 난잡해지거나 수정 사항이 불필요하게 넓게 퍼지는 것을 예방하고 기능을 명확히 분리할 수 있게 한다. 위의 원칙이 제대로 지켜지지 않으면 어떻게 될까? 어떤 프로그래머가 위의 계산 클래스를 통해 GUI를 가지는 계산기 프..

Programming/Java 2023.03.06

Java - 기본 개념

1. 자바 생성자의 특징 모든 클래스는 인스턴스화 될때 생성자를 사용한다. 생성자의 특징 생성자는 리턴타입이 없다. 생성자를 프로그래머가 만들지 않으면 매개변수가 없는 생성자가 컴파일할 때 자동으로 만들어진다. 매개변수가 없는 생성자를 기본생성자라고 한다. 생성자를 하나라도 프로그래머가 만들었다면 기본생성자는 자동으로 만들어진다. 생성자의 역할 생성자가 하는 일은 객체가 될 때 필드를 초기화 하는 역할을 수행한다. 자동차가 객체가 될때 반드시 이름을 가지도록 하려면, Car클래스를 다음과 같이 만들어야 한다. public class Car{ String name; int number; public Car(String n){ name = n; } } 위의 Car 클래스 이용하여 Car 인스턴스를 생성하는 ..

Programming/Java 2023.02.20
728x90