프로그래머스

Algorithm/Programmers

[Programmers] 핸드폰 번호 가리기 (Java)

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12948 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 간단한 String 관련 문제로 주어진 phone_number에서 마지막 4자리를 제외한 모든 숫자를 "*"로 바꿔주면 됩니다. 가장 먼저든 생각은 주어진 길이 - 4 만큼 "*"로 채우고 그 뒤를 substring을 활용하여 마지막 숫자 4개로 채웠습니다. replaceAll과 정규식을 활용한 방법도 있었지만 정규식 사용법에 대해 익숙하지 않아 바로 떠오르진 않았습니다...

Algorithm/Programmers

[Programmers] 문자열 압축 (Java)

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 반복되는 문자열을 압축하여 최소 길이의 s를 구하는 문제로 모든 경우의 수를 구하여 최솟값을 갱신하는 방식으로 생각했습니다. 문자열의 길이 절반이상으로 끊으면 2번이상 반복될 수가 없으므로 문자열의 길이의 절반부터 1까지의 단위로 잘라서 비교했습니다. 우선, s의 길이가 1이면 무조건 1을 retrun 하기 때문에 처음에 따로 처리해주었습니다. n개 단위로 끊어서 반복되는..

Algorithm/Programmers

[Programmers] 숫자 문자열과 영단어 (Java)

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 숫자와 영단어의 조합으로 이루어진 String s가 주어졌을 때 s가 원래 의미하는 숫자를 return하는 문제로 문자열 치환으로 간단하게 할 수 있었습니다. replace와 replaceAll이 무슨차이인지 궁금했는데 기능적으로는 똑같지만 replaceAll의 경우는 정규식을 인자로 받아 해당되는 문자열을 전부 치환한다는 차이가 있습니다. 이번 문제같은 경우에는 특정 문..

Algorithm/Programmers

[Programmers] 거리두기 확인하기 (Java)

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/81302 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 매개변수로 String[][] 형식으로 places가 주어지기 때문에 'P' 문자 하나를 찾아서 dfs로 길이 2만큼 탐색하여 거리두기가 가능한지 판별하였습니다. 우선, 4방향 탐색보단 좌, 우 ,하 3방향만 탐색해도 충분히 전체를 확인할 수 있어 3방향으로 검사하고 visited를 활용하여 중복된 칸은 확인하지 않았습니다. dfs탐색 중, 다른 'P'를 만나면 불가능한 ..

Algorithm/Programmers

[Programmers] 양궁 대회 (Java)

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 라이언이 최대 점수차로 어피치를 이길 수 있는 과녁을 구한다. 과녁이 10개밖에 없기 때문에 가장 먼저 든 생각은 10번 반복문을 돌면서 점수를 먹는 경우, 안먹는 경우가 떠올랐다. 예제 1번을 예시로 들면 [2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0] 0번 Index의 10점을 얻으려면 3개의 화살이 필요하므로 cnt+3과 10점을 안먹는 경우 cnt를 그..

Algorithm/Programmers

[Programmers] 미로 탈출 명령 (Java)

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/150365# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 격자의 크기를 뜻하는 정수 n, m, 출발 위치를 뜻하는 정수 x, y, 탈출 지점을 뜻하는 정수 r, c, 탈출까지 이동해야 하는 거리를 뜻하는 정수 k가 매개변수로 주어집니다. 이때, 미로를 탈출하기 위한 경로를 return 하도록 solution 함수를 완성해주세요. 전체를 탐색하면 무조건 시간초과 or 메모리 초과가 발생할 것이라고 생각했기 때문에 최적의 방법을..

Algorithm/Programmers

[Programmers] 신고 결과 받기

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 id_list : 이용자의 Id, report : 신고 정보, k : 정지 기준이 주어졌을 때, 신고 성공 메일을 받은 횟수 return 이용자들을 Map을 사용하여 각각 index를 붙여준다. report정보를 2차원 배열에 저장한다. 신고 여부만 확인하면 되기 때문에 boolean[][]을 사용했다. 예제 1번을 예시로 들면 muzi frodo apeach neo mu..

Algorithm/Programmers

[Programmers] 기사단원의 무기 (Java)

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 number:기사단원의 수, limit:제한수치, power:대체수치 가 주어졌을 때 필요한 철의 개수 return 필요한 철의 개수는 1부터 number까지의 약수를 모두 구한 후 약수의 개수를 더하여 구할 수 있다. 만약 약수의 개수가 limit을 넘으면 power를 더한다. 두 가지의 풀이방법으로 첫번째는, 1부터 number까지 모든 수의 약수를 구하고 limit..

Algorithm/Programmers

[Programmers] 이웃한 칸 (Java)

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/250125 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 board[][]:색이 칠해진 보드판, h:x좌표, w:y좌표가 주어졌을 때, 인접한 4방향(상하좌우)과 동일한 색 개수 출력하기. board[h][w] 좌표에서 4방향 탐색으로 dx, dy를 설정하고 범위 체크 후 같은 색이 있으면 answer++; 코드 class Solution { public int solution(String[][] board, int h, in..

Algorithm/Programmers

[Programmers] 주사위 고르기 (Java)

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/258709 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 dice[]:주사위 정보가 주어졌을 때 A와 B가 주사위를 반반가질 때, A가 이길 확률이 높은 주사위 번호를 오름차순으로 1차원 배열로 return 1. 우선 A, B가 주사위를 가지는 경우의 수를 조합으로 구해준다. 이 중에서도 1번 주사위는 무조건 A가 가지게 되어도 모든 경우의 수를 구할 수 있기 때문에 1번 주사위는 제외하고 나눠준다. (시간을 조금이라도 줄이..

Jyuni
'프로그래머스' 태그의 글 목록