반응형

전체 글 201

[Java] 플로이드-워셜 알고리즘

음수 사이클이 없는 그래프 내의모든 정점에서 모든 정점까지의 최단거리를 모두 구할 수 있는 알고리즘. *음수 사이클 : 사이클의 모든 경로를 지나 원래 지점으로 돌아왔을 때 최종 비용이 음수인 사이클 다이나믹 프로그래밍 기법을 사용한 알고리즘.인접 행렬을 이용해서 각 노드간 최소 비용을 계산한다.한 정점에서 한 정점까지 가는 경로의 간선 개수를 0개에서 N개까지 모두 고려. 0개의 간선을 거쳐 가는 경우는 자기 자신밖에 없기 때문에초기 그래프의 모양은 (r, c) (r==c)을 제외하고 모드 매우 큰 값으로 초기화해준다.연결되지 않는 경로는 매우 큰 값으로 초기화되어 있을 것이다. 코드 // 플로이드 초기 거리 테이블 초기화 dist = new int[N][N]; for (int i = 0; i  ..

[백준] 1806 : 부분합

https://www.acmicpc.net/problem/1806 [문제풀이]처음엔 왼쪽 포인터와 오른쪽 포인터가 가리키는 두 수 중 더 작은 수를 빼주며 최소길이를 구하려고 했다.하지만 S 이상의 부분합을 전부 볼 수 없다는 문제점이 있었다.그래서 왼쪽과 오른쪽 포인터를 0에서 시작하여 오른쪽만 움직이다가 부분합이 S 이상이 되면 왼쪽 포인터가 가리키는 값을 빼준 왼쪽 포인터를 오른쪽으로 한 칸 옮기는 방식을 구현하였다. [정답]import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;/*10,000 이하의 자연수로 이루어진 길이 N짜리 수열..

백준/투포인터 2024.09.03

[백준] 30023 : 전구 상태 바꾸기

https://www.acmicpc.net/problem/30023 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;/*N개의 전구가 일렬로 세워져 빨, 초, 파 중 하나의 색으로 빛나고 있음.연속한 세 전구를 선택하여 상태를 바꿀 수 있음.빨 -> 초, 초 -> 파, 파 -> 빨모든 전구가 같은 색으로 빛나게 하려면 이 과정을 최소 몇 번 수행해야 하는지 구해라. */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));..

백준/구현 2024.09.02

[프로그래머스] Level 2. 카펫

https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이과정] 중앙이 노란색이고 테두리 1줄이 갈색이면 1. 노란색 타일로 만들 수 있는 모든 사각형의 경우에서 1줄의 갈색 테두리에 필요한 갈색 타일 개수를 비교한다. 2. 갈색 타일로 만들 수 있는 모든 경우의 테두리 속을 채울 노란 타일의 개수를 비교한다. 갈색 타일의 개수는 8이상 5,000이하이고 노란 타일의 개수는 1 이상 2,000,000이하이기 때문에 갈색 타일을 기준으로 경우를 따지..

[프로그래머스] Level 2. 소수 찾기

https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이과정] 최대 길이 7이므로 1,000,000 -> 최대 수는 9,876,543 0이 맨 앞에 오는 건 의미 없음. 소수 판별 로직 숫자를 조합할 때 같은 숫자가 만들어질 수 있음. boolean[10^n] 이용 [내 코드] class Solution { static int length, answer; static int[] arr; static boolean[] check, numberArr..

[프로그래머스] Level 1. 모의고사

https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이과정] 1번 수포자 -> 1, 2, 3, 4, 5 반복 (5개) 2번 수포자 -> 2, 1, 2, 3, 2, 4, 2, 5 반복 (8개) 3번 수포자 -> 3, 3, 1, 1, 2, 2, 4, 4, 5, 5 반복 (10개) -> 배열로 만들어 사용 입력된 배열을 전부 탐색하며 1, 2, 3번 수포자의 답과 비교해준다. 시간복잡도 O(3N) 1. 입력된 배열의 인덱스를 (index % 수포자 ..

[프로그래머스] Level 1. 최소직사각형

https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 접근] 회전이 가능하기 때문에 가로와 세로는 의미가 없음. 1. 전체 길이 중 가장 긴 길이의 값 저장. -> 80, 가로라고 가정 2. 반대(세로)의 길이만 고려해주면 됨. 3. 세로의 길이가 모든 명함 가로, 세로 값 중 적어도 하나의 수보다 크면 됨. [풀이과정] 1. 입력되는 배열을 탐색 2. 명함의 가로, 세로 중 더 작은 값을 비교하며 그 중 가장 긴 값을 저장한다. 3. 모든 ..

[백준] 14499 : 주사위 굴리기

https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net package com.ssafy.algoStudy.BJ; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; /*..

백준/구현 2023.09.08

[백준] 12945 : 재미있는 박스 정리

12945번: 재미있는 박스 정리 (acmicpc.net) 12945번: 재미있는 박스 정리 민호는 N개의 박스를 가지고 있다. 어느 날 박스가 너무 많아져 박스를 정리하고 싶어졌다. 하지만 평범한 박스정리가 너무 지루하다고 생각한 민호는 재미를 위해 몇 가지 규칙을 정하고 박스 www.acmicpc.net 상자는 무조건 큰 상자가 작은 상자의 크기의 2배 이상이어야 하므로 그 이하를 탐색하는 것은 무의미하다. 그래서 배열을 사용하여 1. 전체를 오름차순으로 정렬한 후 2. 작은 상자는 0번 인덱스, 큰 상자는 전체(N) / 2 번 인덱스를 탐색 시작점으로 잡는다. 3. 탐색 중인 두 상자가 결합이 가능하다면 쌍의 개수++ 해준 후 두 개 모두의 인덱스를 옮겨준다. 4. 결합이 불가능하다면 (큰 상자의 ..

백준/이분탐색 2023.09.06

[SWEA] 4299 : 태혁이의 사랑은 타이밍

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AWLv6mx6htoDFAVV&categoryId=AWLv6mx6htoDFAVV&categoryType=CODE&problemTitle=&orderBy=RECOMMEND_COUNT&selectCodeLang=JAVA&select-1=3&pageSize=10&pageIndex=5 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제가 웃겨서 즐겁게 풀었음ㅋㅋㅋ 내 코드 메모리 : 19400 KB 시간 : 97 ms 코드길이 : 1018 B [내 코드]..

SSAFY/SWEA 2023.05.20
반응형