목록IT/알고리즘 (45)
공부블로그
https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 1) 스택의 peek가 비교항(s)과 같아 질 수 있는지를 중심으로 판단 peek == s (o) peek > s : 절대 같아질 수 없음 peek s이면 같아질 수 없고, max < s 이면 같아질 수 있음 2) 1 ~ n 까지 모두 넣어야 하고 스택에서 pop연산을 수행하는 순간 만들고자하는 수열에 값이 추가됨...
https://school.programmers.co.kr/learn/courses/30/lessons/132267 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr class Solution { public static int result; // 공짜 콜라 개수 public int solution(int a, int b, int n) { result = 0; divide(a, b, n); return result; }//solution public void divide(int div, int b, int p){ //div=제수, divd=피제수 if(p >..
https://school.programmers.co.kr/learn/courses/30/lessons/131705 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 블로그에 작성했던 멱집합 알고리즘을 응용해 풀었다. [코드 해석] - 배열 numbers의 첫번째 요소가 포함되는 경우, 포함되지 않는 경우로 나누어 재귀를 실행 - 학생 3명만 선택되어야 하기때문에 기저케이스로 포함된 학생의 수를 나타내는 count변수가 3일경우 합을 구해 0이 나오는지 확인 true=answer증가, false=그냥 종료시킴. - 재귀될 때 마다 numbers의 인덱스값과,..
https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.Arrays; class Solution { public String solution(int[] numbers, String hand) { StringBuilder sb = new StringBuilder(); int l = 10, r=12; // *=10, #=12 for(int i=0; i
[문제 설명] - 점수를 저장하기 위해 Map을 생성한다. key = 성격 유형 ( 'R', 'T', 'C' ..등) value = 질문지에 따른 선택지 점수를 저장한다. 성격 유형 계산 시 각 지표에서 점수가 높은 유형을 반환하고, 같은 점수일 경우 사전 순으로 앞의 성격유형을 반환해야 한다. 요소(key: 성격유형, value: 0 초기점수)를 저장할 때 key의 사전 순으로 저장해 놓고 다른 과정은 거치지 않고 바로 반환할 수 있도록 한다. map은 저장순서 x, 중복(key불가능, value가능)인 특징이 있다. 따라서 저장 순서를 기억하는 LinkedHashMap으로 만든다. - 점수 저장 foreach문을 이용해 survey의 요소를 하나하나 가져온다. 질문지에 따른 선택지 번호가 4초과 일 ..
https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ver.1 import java.util.*; class Solution { public int solution(int[][] sizes) { List list = new ArrayList(); int len = sizes.length; for(int i=0; i=sizes[c][1] && height>=sizes[c][0]) { //카드가 안들어가서 방향을 바꿔 넣어봄 c++; continue;..
https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net [문제 해석] 1. set에 String을 입력받아 중복을 없앤다. 2. 컬렉션 정렬 메소드 Collections.sort( list, Comparator)를 사용한다. 이때 ArrayList(Collection c)생성자를 이용해 set -> list로 변경한다. 기본 정렬이 아닌 사용자 정의 정렬기준을 사용하기 위해 두번째 매개변수에 Comparator객체 전달 > Comparato..
https://www.acmicpc.net/problem/10817 10817번: 세 수 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100) www.acmicpc.net [문제 해석] - 단순 선택 알고리즘 사용 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int[] a = new int[3]; for(int i=0; i