분류 전체보기 57

[브루트포스] 백준(BOJ) 2798번 - 블랙잭 python

세 장의 카드를 고르는 모든 경우를 고려하는 문제 * 브루트 포스(brute force) brute: 무식한, force: 힘 무식한 힘으로 해석할 수 있다. 완전탐색 알고리즘. 즉, 가능한 모든 경우의 수를 모두 탐색하면서 요구조건에 충족되는 결과만을 가져온다. 이 알고리즘의 강력한 점은 예외 없이 100%의 확률로 정답만을 출력한다. 문제 보기 더보기 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다...

[구현, 수학] 백준(BOJ) 2908번 - 상수(숫자를 뒤집어서 비교하는 문제) python

문제보기 더보기 문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다. 두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다. 출력 첫째 줄에 상수의 대답..

[구현, 정렬] 백준 11557번 - Yangjojang of The Year

Python 사전 자료형 이용 * 사전 자료형이란? 키와 값의 쌍을 데이터로 가지는 자료형 내부적으로 해시테이블을 이용하므로 기본적으로 데이터의 검색 및 수정에 있어서 O(1)의 시간 복잡도를 가진다. 리스트보다 훨씬 빠르게 동작한다. 사전자료형에서 values()를 사용해 값만 뽑은 후 정렬된 리스트로 만들어준다. T = int(input()) # 테스트 케이스 횟수 def win(): answer = [] for _ in range(T): n = int(input()) data = dict() for j in range(n): k, v = input().split() data[k] = int(v) # value 값만 뽑아서 정렬된 리스트로 만들어 준다. lst = sorted(data.values()..

[자료구조] Queue Java로 구현하기

First In First Out (FIFO) //add, remove, peek, isEmpty import java.util.NoSuchElementException; class Queue { class Node { private T data; private Node next; public Node(T data) { this.data = data; } } //queue는 앞뒤 값의 주소를 알고 있어야 된다. private Node first; private Node last; //값 추가 public void add(T item) { Node t = new Node(item); //마지막 노드가 있다면 새로 생성한 노트를 붙인다. if (last != null) { last.next = t; } la..

[자료구조] Stack Java로 구현하기

First In , First Out //pop, push, peek, isEmpty class Stack { class Node { private T data; private Node next; public Node(T data) { this.data = data; } } private Node top; //맨 위에 있는 값의 주소만 기억하면 된다. //가장 위의 값 제거 public T pop() { if (top == null) { throw new EmptyStackException(); } T item = top.data; top = top.next; return item; } //가장 위로 값 추가 public void push(T item) { Node t = new Node(item); t..

2022.2.6(일) study

설 연휴로 미뤄졌던 study에 참석했다. 늦게 합류하는 바람에 나는 첫 수업이었지만 기존 팀원 2명은 2번째 수업이었다. * Spring DI * AutoConfiguration - AutoConfiguration 에 의해서 Bean 으로 등록되고, 안되고 등이 스프링부트 버전에 따라서 변경될 수 있고, 그 점에 대해서 개발자가 잘 이해하고 있어야 한다. * 단위테스트 작성 방법 * 도메인 주도 설계 - 서비스에서는 repository를 참조해야지 구현체를 참조하면 안된다. - entity는 아무것도 의존하지 않는 상태를 유지해야 한다. * RestTemplate 사용해서 openAPI호출해보기 - 정렬기능, 평점 0인 경우 결과에서 제외시키는 기능 추가하고 단위 테스트까지 작성해서 PR 요청하기 ⭐️..

개발/끄적이기 2022.02.07

[수학, 구현]백준 2484 - 주사위 네개

문제 Problem Solving 💥 같은 눈이 몇 개인지 어떻게 확인할 것인지가 포인트 -> 정렬한 후 set으로 공통요소를 제거한다. def money(): lst = sorted(list(map(int, input().split()))) if len(set(lst)) == 1: return 50000 + (lst[0] * 5000) if len(set(lst)) == 2: #[1,1,3,3] 또는 [3, 3, 6, 3] 두 가지 경우가 있을 수 있다. if lst[1] == lst[2]: #3개가 같은 경우 return 10000 + (lst[1] * 1000) else: #2, 2개 같은 경우 [1, 1, 3, 3] return 2000 + (lst[1] + lst[2]) * 500 for i i..

항해 12주차 WIL

드디어 프로젝트 발표를 했다. 6주간의 대장정(?)을 끝내니 전부 다 끝나버린 것 같아 아쉬우면서도 안도감도 들면서 어쨌든 시원섭섭한 느낌이었다. 아쉬운 점이 많았지만 항해 시작 전과 비교했을 때와는 비교할 수 없을 정도로 성장한 건 사실인 것 같다. 학교 시험기간에도 날을 새 본 적이 없는데 아침까지 붙잡고 있으면서 어떻게든 작동하게 만들어보겠다고 끙끙댔던 걸 보면 재미있게 한 것 같다. 그 당시에는 너무 괴로웠지만 끝나고 보니 희극이었던 것 같다. 기간 내에 끝나는 데에만 급급해서 제대로 돌아보지 못했던 부분들을 이력서, 면접 준비를 하면서 다시 돌아봐야겠다. 항해 시작 당시에는 빨리 배워서 취업하고 싶다는 생각이 들었다면 지금은 좀 더 잘 알고 취업하고 싶다는 생각이 든다. 이런 마음을 먹었지만 프..

개발/끄적이기 2022.01.29

항해 11주차 WIL

이번 주에 드디어 프로젝트를 배포했다. 기존 배포 예정일보다 늦어졌다. 배포와 함께 진행한 이벤트도 구상해서 인스타그램에 홍보할 이미지도 만들고, 개발자 커뮤니티나 떡볶이 모임에 홍보할 문구도 작성했다. 인스타 광고도 하고 지인들에게 홍보를 했더니 사용자가 생각보다 많이 가입했다. 하지만 사용자 대비 떡볶이 집을 등록하는 비율은 적었다. 식당을 등록하는 과정에서 기입해야 하는 내용도 많고 이미지도 첨부해야해서 식당 등록을 하는 과정이 쉽지않아 생긴 문제인 것 같다. 카카오 API를 받아오고 있으니 식당을 검색할 수 있게 해서 기입하는 정보도 줄이고 정확성을 높이자는 의견을 냈지만 결국 반영되지 못했다. 암튼 프론트적으로 아쉬운 점이 많은데 수정사항이 바로 반영되지 않아 아쉽다.. 기존에 작성해 놓은 AP..

개발/끄적이기 2022.01.24