PS/programmers

    [프로그래머스] - 미로탈출

    [프로그래머스] - 미로탈출

    시작 지점에서 레버까지 bfs로 최단거리 구한 후 도달하지 못하면 -1 리턴 레버에서 출구까지 bfs로 최단거리 구한 후 도달하지 못하면 -1 리턴 레버 출구 둘다 갈 수 있으면 첫 번째 두 번째 최단거리를 더한후 리턴 [Java] import java.io.*; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; class Solution { char [][] map; int [][] depth; int width = 0; int height = 0; int dx[] = {0, 0, -1, 1}; int dy[] = {-1, 1, 0 ,0}; public int solution(String[] maps) { int ..

    [프로그래머스] - 소수찾기

    [프로그래머스] - 소수찾기

    https://school.programmers.co.kr/learn/courses/30/lessons/12921 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 해당 문제의 제한 조건을 보면 n은 2 ~ 1000000의 범위를 가진다. 따라서 O(n^2)의 소수판별 알고리즘을 사용하면 시간초과로 통과하지 못한다. 특정한 소수의 제곱근은 소수가 아니라는 특징을 가지고 O(n^1/2)의 시간 복잡도를 낼 수 있다. 위와 같은 방법을 에라토스테네스의 체라고 한다. [java] class Solution { int arr[] = new int[10..

    [프로그래머스] - 무인도 여행

    [프로그래머스] - 무인도 여행

    https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] bfs를 이용해 상하좌우 인접한 땅을 찾습니다. 무인도로 이루어진 숫자의 합을 ArrayList에 추가 bfs가 끝나면 ArrayList를 오름차순 정렬 시켜줍니다. ArrayList 크기가 0이면 -1을 넣어준후 리턴 시켜주면 됩니다. [java] mport java.io.BufferedReader; import java.io.IOException; import java.io.I..

    프로그래머스 - 개인정보 수집 유효기간

    프로그래머스 - 개인정보 수집 유효기간

    https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 해당 문제는 간단한 구현 문제인 것 같습니다. (개인정보 수집 일자 + 유효기간) -1 < 현재 날짜이면 배열에 추가 날짜를 split 함수로 연, 월, 일을 구별해준 뒤 연도에는 336일을 곱해주고 월에는 28일을 곱해줬습니다. 만기일 계산하기 위해 약관 종류를 해쉬맵에 담아 불러왔습니다. [Java] import java.io.*; import java.util.*; class..

    프로그래머스 - 프렌즈 4블록

    프로그래머스 - 프렌즈 4블록

    https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 해결] 중복되는 4개 블록들을 찾아서 ArrayList에 넣어준다. (4분 탐색) ArrayList에서 삭제할 블록들을 꺼내면서 더미 값 'x' 로 바꾸어 준다. x로 된 값들은 전부 위로 올려주고 x가 아닌 값은 밑으로 내린다 중복 되는 4블록이 없을때 까지 반복 [java] import java.io.BufferedReader; import java.io.IOException; impo..

    Programmers - 피로도 (Java) 완전탐색

    Programmers - 피로도 (Java) 완전탐색

    https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제풀이] 입력으로 들어오는 배열 길이가 최대 8이므로 완전탐색으로 해결 할 수 있습니다. 우선 저는 순열을 이용해 모든 경우의 수를 구하여 문제를 해결하였습니다. class Solution { static int max = Integer.MIN_VALUE; public static int solution(int k, int[][] dungeons) { Solution.permutation(du..