분류 전체보기

    [프로그래머스] 2018 카카오 블라인드 - [1차] 추석 트래픽

    문제 https://programmers.co.kr/learn/courses/30/lessons/17676 num else num # 최댓값 갱신 return maxNum 파이썬 시간 관련 모듈을 처음 사용해봐서 좀 오래 걸렸다. time모듈을 사용하다가 연산 관련 기능이 없는 것 같아 datetime 으로 바꾸었다. datetime.datetime.strptime으로 스트링에서 datetime의 객체로 변환하고 timedelta로 연산 시작 시간을 계산해 저장했다. 참고한 문법 자료: https://docs.python.org/ko/3/library/datetime.html https://yuddomack.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-datetime..

    [프로그래머스] 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 풀이 그냥 단순 구현문제였다. def solution(board, moves): answer = 0 stack = [] for m in moves: for row in board: if row[m-1] != 0: #해당 줄의 가장 위에 놓인 인형을 스텍에 쌓음 stack.append(row[m-1]) row[m-1] = 0 break if len(stack) >= 2: #쌓인 인형이..

    [프로그래머스] 동적계획법 3. 등굣길

    문제 https://programmers.co.kr/learn/courses/30/lessons/42898# 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 풀이 전체를 -1로 초기화 puddles 를 0으로 만든다. 첫번째 행부터 순회하며 각 경우의 수를 저장한다. def solution(m, n, puddles): grid = [[-1] * m for _ in range(n)] if m > 0: # (1,0) (0,1) 초기화 grid[1][0] = 1 if n > 0: grid[0][1] = ..

    [입문] 회원 관리 예제_백엔드 개발

    비즈니스 요구사항 정리 일반적인 웹 어플리케이션 계층 구조 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 데이터 저장소가 선정되지 않아 인터페이스로 구현 클래스를 변경할 수 있도록 설계함 RDB로 할지 JPA로 할지 등 정해지면 바꿔 끼울 것 회원 도메인과 레포지터리 만들기 shift + F6 : 파일 이름 변경 Optional이란? Java 8에 포함된 기능 id로 찾지 못한 경우 null로 반환 하는 대신 Optional으로 감싸서 반환 Optional.ofNullable()로 감싸 반환하면 클라이언트에서 대응..

    [입문] 스프링 웹 개발 기초

    스프링에서 제공하는 것 정적 콘텐츠 (https://docs.spring.io/spring-boot/docs/2.6.0-SNAPSHOT/reference/html/web.html#web ) MVC와 템플릿 엔진 API 정적 콘텐츠 사용원리 웹 브라우저 -> 톰캣 -> 1. 스프링 컨테이너에서 컨트롤러 있는지? -> 2. resources/static/ 에 있는지 MVC view: 보여주는 것 담당 controller: 비즈니스 로직처리 model: 로직관련 저장 thymeleaf: 템플릿 엔진. html을 변경함 사용원리 웹브라우저 -> 톰캣 -> 컨트롤러 -> ViewResolver -> 변환된 html 웹브라우저로 API 모델, 뷰 이런거 없음 그냥 리턴값 그대로 넘어감 @ResponseBody 붙여..

    [프로그래머스] 2020 카카오 문자열 압축

    문제 https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 풀이 알고리즘 카테고리에서 어느 것에 해당하는 것인지 생각해 보았는데 (해시, 정렬, 동적계획법 등) 적절한 것이 떠오르지 않아 그냥 짜보기로 했다. 구현력을 시험하는 문제같기도 하다. 생각한 방법은 다음과 같다. ex) aabbacccc 1. 1~문자열 길이-1 만큼 반복문을 돌며 각 자리수만큼 자른다 ex) 두개씩 자를 때 aa / bb / ac..

    [프로그래머스] 탐욕법 5. 섬 연결하기

    문제 https://programmers.co.kr/learn/courses/30/lessons/42861?language=python3 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 풀이 최소신장트리 문제인 것 같아 검색해 보았다. MST 문제에는 크게 두 가지 방법의 해결책이 있는 듯 했다. 주 반복문이 정점의 수 n만큼 반복하고, 내부 반복문이 n번 반복 Prim의 알고리즘의 시간 복잡도는 O(n^2) Kruskal 알고리즘의 시간 복잡도는 O(elog₂e) 그래프 내에 적은 숫자의 간선만을 가지는 ‘희소 그래프(Sparse Graph)’의 경우 Kruskal 알고리즘이 적합하고 그래프에 간선이 많이..

    [프로그래머스] 2019 카카오 오픈채팅방

    https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 풀이 딕셔너리에 id별로 닉네임 저장 ex) {id1: 'prodo', id2: 'ryan' ... } swich case 문으로 'enter' 'leave' 'change' 처리 마지막에 value값으로 매핑해서 반환 def solution(record): idDic = {} answer = [] for r in record: words = r.split() ..