목록분류 전체보기 (167)
코디잉
https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식) 완전탐색: 만들 수 있는 모든 명함의 크기 중 제일 큰 걸 찾으면 된다. 명함의 가로 중 제일 긴 거, 세로 중 제일 긴 거를 찾아서 곱하면 된다. 하지만 주의할 점은 명함을 회전시켜, 가로와 세로를 바꿀 수 있다는 점이다. 그래서, 명함의 긴 부분을 가로, 짧은 부분을 세로로 하기로 정했다. 가로 = 명함의 두 값 중 큰 값세로 = 명함의 두 값 중 작은 값 우리에게 주어진 size..
https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식) BFS 1. 2차원 배열인 map을 상하좌우로 움직일거니까 static int[] dx, int[] dy 생성 움직인 거리 표시해줄 2차원 배열 static int visited[][] 생성 → -1로 초기화해서 도착했든 못했든 상관 없이 -1 or 칸의 개수 최솟값 return 되게끔 2. BFS수행: 상하좌우 돌면서 map의 x, y에 벗어나지 않고, 방문하지 않았으면 큐에 추가하고..
https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 접근 방식) Queue에 다 넣어서 빼고 뒤에 넣고 하려고 했더니, "나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다." 그래서 프린터 대기열을 위한 일반 Queue와 우선순위 확인을 위한 PriorityQueue를 함께 사용하려고 한다..! 그리고 편의를 위해 문서Document 클..
https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 접근방식) ▶ 문자열로 받아서 char 배열 오름차순 정렬 수행 그리고 StringBuilder에 저장한다. 방법1) 그냥 저장한다음 sb.reverse() 로 뒤집기 방법2) sb.insert(0, 문자열) 로 순서대로 앞에 넣기 ▶ 방법3) List에 저장해서, Collections.sort(list 이름, Collections.reverseOrder()) 로 내림차순 정렬하기 방법1) sb.reverse() 로 뒤집기 package codingTestStudy.week1; im..
https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제) MBIT의 EI, NS, FT, JP 처럼 성격유형 RT, CF, JM, AN 있다. 7개의 선택지가 있고, 각각 1~7점이다. "RT" 질문이 있을 때, 각 선택지별로 점수 배분은 아래와 같이 된다. 1점 2점 3점 4점 5점 6점 7점 R+1 R+2 R+3 0 T+1 T+2 T+3 "TR" 질문 받았을 때는 1점 2점 3점 4점 5점 6점 7점 T+1 T+2 T+3 0 R+1 R+2 ..
https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식) 1) progresses[]에 있는 작업들의 작업완료일을 계산해서 Queue에 추가한다. 작업완료일 = 100 - progresses[i] / speeds[i]; → 나누어 떨어지지 않으면 + 1 해준다. 2) Queue가 빌 때까지 반복하며, Queue의 첫번째원소(prev)와 현재원소(now)를 비교한다. - prev보다 now가 작거나 같다면, list에 추가되어있는 배포개수를 ..
https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제) N / 2 마리 선택할 수 있다. 가장 많은 종류 선택하는 방법 찾기 접근 방식) 중복 허용하지 않는 set 사용 1. set에 저장 2. set.size(), N/2 중에 최솟값 찾기 import java.util.*; class Solution { public int solution(int[] nums) { Set set = new HashSet(); for (int i : nums) {..
https://school.programmers.co.kr/learn/courses/30/lessons/12919 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제) seoul 배열 원소 중 "Kim"의 위치 찾기 접근 방식) indexOf() 를 사용하고 싶어서, Arrays.asList()를 사용해서 seoul 배열을 List로 바꿨다. import java.util.*; class Solution { public String solution(String[] seoul) { return "김서방은 " + Arrays.asList(seoul).inde..
https://school.programmers.co.kr/learn/courses/30/lessons/12915 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제) 배열의 각 원소(string)를 n번째 글자 기준으로 오름차순 정렬한다. 만약 n번째 글자가 같다면, 사전순으로 정렬한다. 접근 방식) 1. Arrays.sort()를 사용해서, 정렬 기준을 정의 n번째 글자 기준으로 오름차순 정렬하되, s1과 s2의 n번째 글자가 같다면, 사전순으로 정렬한다. 2. 정렬된 strings 배열을 return 한다. import java.util.Arrays..
https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식) 원본배열을 a~b범위까지 자르고 → 자른 배열을 정렬해서 → K번째 수를 찾아야한다. 1. Arrays의 copyOfRange() 를 이용하여, 원본 배열을 잘라 arr로 새롭게 저장한다. 2. Arrays의 sort()를 이용하여, arr를 정렬한다. 3. 정렬한 arr에서 K번째 수를 찾아, 정답 배열에 넣어준다. import java.util.Arrays; class Soluti..