99클럽30 항해 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. 항해 99 14일차 TIL( 이진 변환 / 프로그래머스 ) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 입력받은 문자열이 1이 될 때까지 while 반복문을 돌린다. 입력받은 문자열에 있는 0을 ""으로 바꿔서 text 변수에 저장한다. 입력받은 문자열의 길이에서 text의 길이를 빼서 0의 개수를 센다. text의 길이를 이진수로 바꿔서 binary 변수에 저장한다. 한 번 반복문이 돌 때마다 count를 1씩 늘려준다. 반복문이 다 돌고 난 후의 count와 zero를 배열에 담아 return 한다. 진수변환 함수 int decimal = 10; String binary = Integer.. 2024. 4. 10. 이전 1 2 3 4 다음