본문 바로가기

99클럽31

항해99 22일차 TIL(큰 수 만들기 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 한 번에 정답을 도출할 수 있는가 Yes or No No, 숫자 가장 앞에서부터 큰 숫자를 고른다고 해도 안 되고 가장 작은 숫자를 뺀다고 해도 안된다. 뺄 수 있는 숫자 다 빼보고 탐색해보기 완전 탐색이라라고 하기엔 시간복잡도에서 걸릴 것 같다 다시 2번으로 돌아가기 한 번에 정답을 도출 할 수 있는가 Yes or No Yes, 탐욕스러운 알고리즘 정답을 만들어야 할 최소한의 숫자들을 뒤에 남겨놓고 앞에 숫자에서 하나 뽑는다. 그 과정을 반복한다. ex) 입출력 예2번 {}선택 존 {}도.. 2024. 4. 19.
항해 21일차 99 TIL (공원산책/프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 구현 문제여서 아이디어는 설명 안하겠다. isWalk: 갈 수 있는 길인지 확인하는 함수 separate: 방향, 거리를 계산해 {x,y}로 반환하는 함수 import java.util.*; class Solution { public int[] solution(String[] park, String[] routes) { int xLength = park[0].length(); int yLength = park.length; int[] startInd = new int[2]; startInd.. 2024. 4. 18.
항해99 20일차 TIL( 전력망을 둘로 나누기 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 연결선이 가장 많은 숫자 구하기 그 숫자랑 연결되어 있는 선 하나씩 끊어보며 차이 업데이트하기 import java.util.*; class Solution { public int solution(int n, int[][] wires) { int group1N = 0; int group2N = 0; int[][] linesN = new int[n][2]; int k = 1; //linesN = 숫자마다 연결되어 있는 숫자 개수 구하기 for(int[] l : linesN) { l[0] = .. 2024. 4. 17.
항해 99 19일차( 신고 결과 받기 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 이 문제 자체는 쉬웠지만 자료구조에 대해 고민을 많이 했다. Key: 신고당한 사람 Value: 신고한 사람 reportMatching(HashMap) Key: 메일 받은 사람 Value: 메일 받은 횟수 lMap(LinkedHashMap) import java.util.*; class Solution { public Collection solution(String[] id_list, String[] report, int k) { ArrayList reportMatching = new Ar.. 2024. 4. 16.
항해 99 18일차 TIL( 대충 만든 자판 / 프로그래머스 ) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 자료구조는 HashMap을 사용한다. HashMap에 알파벳마다 눌러야 하는 최소 횟수를 저장한다. Keymap의 알파벳을 탐색하며 알파벳마다 눌러야 하는 최소 횟수를 업데이트 해간다. import java.util.*; class Solution { public int[] solution(String[] keymap, String[] targets) { int n = keymap.length; HashMap map = new HashMap(); for (int i = 0; i < n; i.. 2024. 4. 15.
2개 이하로 다른 비트 / 자바 / 프로그래머스 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 완전탐색을 시도하려다가 numbers의 길이를 보고 시간초과를 직감하여 완전탐색은 포기하였습니다. 이런경우 규칙을 찾는 것이 중요합니다. 완전탐색으로 시간초과가 나는 경우 출제자들이 무조건 규칙을 만들어놓습니다. 제가 찾은 규칙은 이렇습니다. 1. 가장 끝에서 0인 숫자를 1로 바꾼다. 뒤에 숫자를 0으로 바꾼다. 2. 0이 binary 맨 뒤에 있는 경우 0 -> 1만 해준다. 3. 0이 존재하지 않는 경우 1을 추가하고 기존 맨 앞 숫자를 1 -> 0으로 바꿔준다. import java.. 2024. 4. 14.
항해 99 17일차 TIL ( JadenCase 문자열 만들기 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 String 함수, 이 두개를 알아야 풀 수 있는 문제입니다. toUpperCase() toLowerCase(); class Solution { public String solution(String s) { String answer = ""; String[] words = s.toLowerCase().split(""); boolean flag = true; for (String word : words) { answer += flag ? word.toUpperCase() : word; fla.. 2024. 4. 14.
항해 99 16일차 TIL( 광물캐기 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사고과정 문제를 요약하자면 최소한의 피로도로 최대한 광물을 캐는 것이다. 광물 캐는 규칙을 세워보겠다. 돌은 어느 곡갱이로 캐든 피로도가 1로 똑같다. 그러므로 가장 성능이 안 좋은 곡갱이를 우선순위로 사용해야 한다. 돌을 캘 때는 다이아몬드 < 철 < 돌 곡갱이로 우선순위를 돌 것 다이아 몬드를 캘 때는 돌 < 철 < 다이아몬드 철을 캘 때는 돌 < 다이아몬드 < 철 하나의 곡갱이를 선택하면 무조건 연속으로 5개 캐야한다. 1번째 시도 끝나는 상황이 두 개로 나누어진다 1. 곡갱이가 부족한 상황 2. .. 2024. 4. 13.
항해 99 15일차 TIL ( 뒤에 있는 큰 수 찾기 / 프로그래머스) 문제 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/154539) o(n2)으로 탐색하면 쉬운 문제이지만 numbers의 길이가 1,000,000이다. 시간초과에서 걸릴 것 같아 좋은 방법을 생각해야 한다. 일단 o(n2)로 코드 구현해보자 1 번째 시도 import java.util.*; class Solution { public int[] solution(int[] numbers) { int n = numbers.length; int[] arr .. 2024. 4. 12.