본문 바로가기

개발

(34)
[Python 프로그래머스] 2019 카카오 개발자 겨울 인턴십 - 크레인 인형뽑기 게임 https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 나의 풀이 이 문제 역시 스택/큐를 활용하는 문제라고 생각되었다. 요즘 python deque 로 pop하는 알고리즘을 자주 접하게 되는 것 같은데, 이번 문제를 풀면서 numpy 까지 사용했었지만 내 뜻대로 해결되지 않아 deque를 적용해서 풀 수 있었다. 리스트 내에서 0 을 모두 제거하는 부분에서 remove 만으로 해결이 안돼서 모두 제거하는 함수를 활용한 점과 board 리스트..
[Python 프로그래머스] 2019 KAKAO BLIND RECRUITMENT - 실패율 https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스�� programmers.co.kr 나의 풀이 최근에 deque 활용 문제를 풀면서 enumerate 함수가 인덱스와 값을 리스트 형태로 사용하기 좋은 함수라고 기억하고 있었는데 마침 적절하게 사용할 수 있어서 좋았던 것 같다. 그리고 튜플 형태에서 간단하게 key 혹은 value 값을 뽑아서 사용하고 싶을 때 lambda 를 사용하면 된다는 걸 이번 풀이에서 알게된 것 같다. lambda와 ..
[Python 프로그래머스] 기능개발 - level2 [스택/큐] 우선 문제를 읽고 굉장히 간단할 것 같다는 생각을 했다. 스택/큐 자료구조를 사용해서 푸는 문제라는 걸 참고해서 풀어보면 될 것 같다. 남은 작업 진도의 값(100-progresses)을 speeds 로 나누고 나머지가 있을 경우 +1 즉, 올림해주면 완성일이 나올 것이다. 그리고 뒷 인덱스의 값이 작더라도 앞 인덱스의 값까지 기다려야 하기 때문에 이때 아마 큐를 사용하는 것 같다. ------------------------------------------------------------------ import math def solution(progresses, speeds): preanswer=[] answer=[] for pc, sp in zip(progresses, speeds): cnt=0 c..
[JAVA 백준] 10871. X보다 작은 수 정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오. 감을 잃은 것 같아서 단계별로 풀기에서 하나씩 뽑아서 풀어보고 있는데 재밌는 것 같다. 역시 간단하게 for 문과 if 문으로 해결할 수 있는 문제이다. import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int x = sc.nextInt(); int[] a = new int [n]; //입력될 n 크기 만큼 배열 크기 지정해서 선언 int i; for (i=0;i
[JAVA 백준] 11022. A+B - 8 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 이 문제도 매우 쉬운 문제, import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); int t = sc.nextInt(); int[] a = new int[t]; // a와 b가 한 줄 씩 t 번 입력되므로 배열 생성 int[] b = new int[t]; for (int i=0;i
[JAVA 백준] 10817. 세 수 세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오. 문제는 매우 간단하지만 새롭게 알게 된 게 있으면 공부가 되는 거니까 문제를 풀다가 입력받은 int 를 배열에 넣는 더 효율적인 소스를 알게되어서 같이 작성해보려고 한다. 먼저 내 소스는 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); sc.close(); //sc.close()를 통해 메모리 사용량을 줄일 수 있다. int[] ar..
[JAVA] level1. 같은 숫자는 싫어 이 문제를 풀고 나서 더 간단한 다른 풀이를 찾다가 추상클래스와 인터페이스, ArrayList, ListIterator 까지 많은 것을 공부하고왔다. 2019/11/20 - [자바/기본 개념] - List와 ArrayList / ArrayList와 Array 2019/11/20 - [자바/기본 개념] - 추상클래스와 인터페이스 / 상속과 다형성 우선 문제는 간단하다. 배열 arr 가 주어지는데, 연속으로 중복된 element 는 하나만 남기고 전부 제거해 배열 answer 에 넣으면 끝! arr = [1,1,3,3,0,1,1] 이면, answer = [1,3,0,1] 이 될 것이고, arr = [4,4,4,3,3] 이면, answer = [4,3] 이 될 것이다. public class solution ..
[JAVA] Iterator와 ListIterator * Iterator : 컬렉션 인터페이스중 하나, 메소드 기능 boolean hasNext() 읽어올 element 가 있으면 true 반환 Object next() 다음 element 읽어오기 next() 호출 전 hasNext()로 읽어올 element 가 있는지 확인하는게 안전 void remove() next() 로 읽어온 element 삭제 List list = new ArrayList(); Iterator it = list.iterator(); while(it.hasNext()) { System.out.println(it.next()); } * ListIterator : Iterator를 상속받아 기능을 추가한 것, 컬렉션의 요소에 접근할 때 Iterator는 단방향으로만 이동이 가능하지만, ..