본문 바로가기

Algorithm94

[알고리즘 문제풀이] 프로그래머스 - 영어 끝말잇기 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0] programmers.co.kr /** 1. word를 지정할 idx 변수를 둠 2. words의 길이를 넘어가면, .. 2022. 2. 23.
[알고리즘 문제풀이] 프로그래머스 - 뉴스 클러스터링 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr /** 1. 문자열 파싱하여 다중집합 만들기 1-1) 정규식 사용 2. 다중집합 비교하여, 교집합과 합집합 구하기 2-1) 같은 원소가 들어갈 수 있으므로, 2개의 맵을 사용하여 원소별 개수 파악 2-2) 한개의 맵을 돌면서, 다른 맵과 비교하여 교집합 개수 파악(공통부분의 최소 개수) 2-3) 두개의 맵을 돌면서, 합집합의 개수 파악(공통.. 2022. 2. 22.
[알고리즘 문제풀이] 프로그래머스 - 예상 대진표 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr /** 1. 2개를 기준 짝으로, 경기를 치룸. 2. 2의 지수승으로 주어지므로, 부전승은 제외해도 됨. 3. a와 b를 -1한 것이 같은 지수일때, 둘이 붙게 됨.(현재 라운드에서 붙는지 안붙는지 확인 식) 3-1) (a-1)/2 == (b-1)/2 같으면 둘이 붙는 것 4. 그전까진 n/2 + n%2를 하면서 라운드 증가(다음 라운드.. 2022. 2. 21.
[알고리즘 문제풀이] 프로그래머스 - 전화번호목록 / 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.