Programming 38

백준 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

백준 15684 : 사다리 조작 [파이썬]

https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net 1. 문제 설명 2. 문제 풀이 2차원 배열로 만들어 1. 백트래킹을 이용해 가로선을 만들고 2. 만든 가로선으로 i번 세로선의 결과가 i번이 나오는지 체크한다. 3. 코드 import sys def check(): # i번 세로선의 결과가 i번이 나오는지 체크 for i in range(n): temp = i # 이동하는 세로선 위치 for j in range(h): if graph[j][te..

Programming/python 2023.03.20

백준 12100 : 2048(Easy) [파이썬]

https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 1. 문제 2048 게임은 4×4 크기의 보드에서 혼자 즐기는 재미있는 게임이다. 이 문제에서 다루는 2048 게임은 보드의 크기가 N×N 이다. 보드의 크기와 보드판의 블록 상태가 주어졌을 때, 최대 5번 이동해서 만들 수 있는 가장 큰 블록의 값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 ..

Programming/python 2023.03.13

객체 지향 설계 원칙

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

Programming/Java 2023.03.06

SWEA 점심 식사시간 [파이썬]

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5-BEE6AK0DFAVl&categoryId=AV5-BEE6AK0DFAVl&categoryType=CODE&problemTitle=sw&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=2 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 문제설명 N*N 크기의 정사각형 모양의 방에 사람들이 앉아 있다. 점심을 먹기 위해 아래 층으로 내려가야 하는데, 밥을 빨리 먹기 위해 최대한..

Programming/python 2023.03.06

SWEA 원자 소멸 시뮬레이션 [파이썬]

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRFInKex8DFAUo&categoryId=AWXRFInKex8DFAUo&categoryType=CODE&problemTitle=sw&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 문제 설명 [제약 사항] 1. 원자들의 수 N 은 1,000개 이하이다. (1≤N≤1,000) 2. 각 원자들의 보유 에너지 K 는 1 이상 ..

Programming/python 2023.03.04

백준 6087 : 레이저 통신 [파이썬]

https://www.acmicpc.net/problem/6087 6087번: 레이저 통신 크기가 1×1인 정사각형으로 나누어진 W×H 크기의 지도가 있다. 지도의 각 칸은 빈 칸이거나 벽이며, 두 칸은 'C'로 표시되어 있는 칸이다. 'C'로 표시되어 있는 두 칸을 레이저로 통신하기 위해서 www.acmicpc.net 1. 문제설명 문제에 풀이에 대한 감을 전혀 잡고 있지 못했다. 생각했던것들은 3가지 였다. 벽에 부딪힐 때까지 한방향으로 나아가기 O 방향이 바뀔 때 visited + 1처리 O 3차원 으로 해결 X 이 중에서 풀이에 대한 해결법은 2가지 정도만 해당 됐다. 이 문제를 푸는 법 C의 죄표를 찾아 리스트에 좌표값을 넣는다. (무조건 두개이고 무조건 한쪽에서 한쪽으로 연결된다.) 아무거나 ..

Programming/python 2023.02.25

백준 2206 : 벽 부수고 이동하기 [파이썬]

https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 1. 문제 설명 (0, 0) 에서 (n-1, m-1) 까지 이동할 수 있다면 거리를, 없다면 -1을 출력하는 문제인데 문제는 벽을 하나 부술 수 있다라는 것이였다. 1. 첫 시도 처음은 그냥 bfs를 시도한다. 그리고 벽을 하나씩 0으로 만들고 시도한후, 다시 1로 만든다. bfs를 시도할때마다 (n-1, m-1)를 리스트에 넣고 최댓값을 뽑는다. 최댓값이 0이라면 못가는..

Programming/python 2023.02.25

Java - 기본 개념

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

Programming/Java 2023.02.20
728x90