본문 바로가기

Algorithm/프로그래머스풀이46

[알고리즘 문제풀이] 프로그래머스 - 짝지어 제거하기 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr /** 1. 스택을 이용한 풀이 2. 문자열을 탐색하면서 해당 문자와 스택에 담긴 문자가 같을때, 스택에서 pop 아니면 스택에 push 3. 최종 스택에 담긴 문자열이 있으면 0반환 없으면 1반환 **/ import java.util.*; class Solution { public int solution(String s) { Stack stack .. 2022. 2. 26.
[알고리즘 문제풀이] 프로그래머스 - JadenCase 문자열 만들기 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/12951 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 programmers.co.kr /** 1. 첫번째 문자만 대문자 변경 2. 나머진 소문자 **/ import java.util.*; class Solution { public String solution(String s) { StringBuilder sb = new StringBuilder(); for(int i = 0; i < s... 2022. 2. 25.
[알고리즘 문제풀이] 프로그래머스 - 피로도 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/87946 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr /** 1. 백트래킹 풀이 2. dfs로 던전 순서 정하기 (현재 피로도로 돌 수 있는 던전만 경우의 수 계산) 3. dfs를 돌때마다 최대값 계산 **/ import java.util.*; class Solution { public int answer = 0; public boolean[] visited; public int solution(int k,.. 2022. 2. 24.
[알고리즘 문제풀이] 프로그래머스 - 단체사진 찍기 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/1835 코딩테스트 연습 - 단체사진 찍기 단체사진 찍기 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 programmers.co.kr /** 1. 전체 경우의 수를 파악(8명이 있으므로, 8!) 2. 경우의 수마다 조건에 맞는 안맞는지 확인 3. 조건에 맞는 개수 반환 **/ class Solution { public int answer = 0; public boolean[] visited = new boolean[8]; public int solution(int n, String[] dat.. 2022. 2. 24.
[알고리즘 문제풀이] 프로그래머스 - 신규 아이디 추천 / JAVA(자바) https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr /** 1. toLowerCase()로 소문자 치환 2. replaceAll(정규식,"") 으로 제거 3. replaceAll([.]{2,},".") 으로 2번이상 .을 제거 4. 시작부분이나 끝부분 . 제거 5. id가 비어 있으면, "a"로 변경 6. id 길이 16이상이면 15까지 substring으로 제거 6-1) 제거 후 끝부분 .이면 제거 7... 2022. 2. 23.
[알고리즘 문제풀이] 프로그래머스 - 영어 끝말잇기 / 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.