본문 바로가기

Algorithm/프로그래머스풀이46

[알고리즘 문제풀이] 프로그래머스 - 전화번호목록 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr /** 1. 전체 번호를 해시에 등록해두기 2. 전체 번호를 하나씩 돌면서, 전화번호의 일부가 해시에 있는지 확인 2-1) Stringbuilder 를 통해 전화번호를 만드는 연산 시간복잡도를 O(1)로 만듬. toString() 시간복잡도 추후에 알아볼것. 2-2) substring을 써도 시간복잡도엔 문제 없을 것으로 보임 1~20 까지 의 합이므로, 2.. 2022. 2. 21.
[알고리즘 문제풀이] 프로그래머스 - 괄호 변환 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr /** 1. 재귀 구현 풀이 2. 해당 문자열이 올바른지 체크 함수 3. 해당 문자열 분리 함수 **/ import java.util.*; class Solution { public String solution(String p) { String answer = ""; answer = solve(p); return answer; } public String solv.. 2022. 2. 20.
[알고리즘 문제풀이] 프로그래머스 - 합승 택시 요금 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr /** 플로이드 워셜 풀이 1. 전체지점에서 전체 지점 이동 최소비용 구하기 2. .. 2022. 2. 18.
[알고리즘 문제풀이] 프로그래머스 - 광고 삽입 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/72414 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr /** 1. 초 단위로 누적합 진행 1-1) 1시간 = 3600초 최대 100시간 = 360,000 초 1-2) 초단위 배열을 생성 후 누적합으로 각 초에 몇명이 봤는지 계산 2. 초단위 배열에서 각 초 별 누적 재생시간으로 배열 변경 2-1) 누적합 사용 4. 누적합으로 해당 범위 계산 최.. 2022. 2. 18.
[알고리즘 문제풀이] 프로그래머스 - 124 나라의 숫자 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr /** 규칙에 따른 변환 출력 **/ class Solution { public String solution(int n) { String answer = ""; StringBuilder sb = new StringBuilder(); while(n > 0){ int num = n%3; if(num == 0){ sb.append(4); n = n/3 -1; }else{ sb.append(num); n/= 3; } } return sb.reverse().toString(); } } 2022. 2. 18.
[알고리즘 문제풀이] 프로그래머스 - 괄호 회전하기 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr /** 1. s의 길이만큼 회전 1-1) stringBuilder 사용 2. 회전시 해당 문자열이 올바른 괄호 문자열인지 체크 2-1) stack 사용 **/ import java.util.*; class Solution { public int solution(String s) { int answer = 0; StringBuilder sb = new StringBuilder(s); for(int i = 0; i < s.length(); i++){ if(check(sb.toString())) answer++; sb.append(sb.char.. 2022. 2. 18.
[알고리즘 문제풀이] 프로그래머스 - 수식 최대화 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr /** 1. 연산자 우선순위 선정 1-1) 재귀로 선정 2. 문자열 파싱 2-1) arrayList 2개만들어서 숫자와 연산자 별도 보관 3. 연산자 순서에 따른 계산 2-1) 새로운 어레이리스트 생성하여 파싱한 정보 넣기 2-2) 연산자 우선순위대로 돌고, 연산자 어레이리스트 돌기 2-3) 동일한 연산자면 해당 위치의 숫자 어레이리스트 두개 빼내서 계산 2-.. 2022. 1. 31.
[알고리즘 문제풀이] 프로그래머스 - 사라지는 발판 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/92345 코딩테스트 연습 - 사라지는 발판 [[1, 1, 1], [1, 1, 1], [1, 1, 1]] [1, 0] [1, 2] 5 [[1, 1, 1], [1, 0, 1], [1, 1, 1]] [1, 0] [1, 2] 4 programmers.co.kr /** 1. dfs 완탐 2. A턴과 B턴을 구분 3. 본인 턴에서 움직인 후 그 정보를 상대턴으로 넘기기 4. 상대턴에서 이기거나 지거나 했을 경우 승패정보 + 움직인수 반환 5. 상대턴에서 졌으면, 본인턴은 이기는경우 6. 이기는경우엔 최소한으로 이길 수 있는 값 반환 7. 질경우엔 최대한으로 끌어서 지는 값 반환 **/ class Solution { publ.. 2022. 1. 30.