전체 글
[프로그래머스] 64064. 불량 사용자
2019 카카오 개발자 겨울 인턴십 - 64064. 불량 사용자 Python 풀이 풀이 우선 user_id 배열의 크기는 1 이상 8 이하입니다. banned_id 배열의 크기는 1 이상 user_id 배열의 크기 이하입니다. 의 조건이 존재하기 때문에, 효율성을 크게 따질 필요는 없어 보임. isSame() => banned ID에 user ID가 들어갈 수 있는 지 확인하는 함수. 하나 만들어 놓고, 빈 dictionary(able) 생성해서, banned_id 의 index 순으로 대입 가능한 user_id 의 배열을 집어넣어 놓음. user_id = ["frodo", "fradi", "crodo", "abc123", "frodoc"] banned_id = ["fr*d*", "*rodo", "***..
[프로그래머스] 64065. 튜플
2019 카카오 개발자 겨울 인턴십 - 64065. 튜플 풀이 map과 split을 적절히 이용해서 배열화한 후, 길이가 작은 순서대로 중복없이 집어넣어야 순서가 맞음. def solution(s): def split_(s): return list(s.split(',')) s = s[2:-2] s = list(s.split('},{')) s = list(map(split_, s)) for i, a in enumerate(s): s[i] = list(map(int, a)) s.sort(key=lambda x: len(x)) answer = [] for a in s: for i in a: if i not in answer: answer.append(i) return answer
[프로그래머스] 64061. 크레인 인형뽑기 게임
2019 카카오 개발자 겨울 인턴십 - 64061. 크레인 인형뽑기 게임 풀이 Stack을 이용하면 간단히 풀 수 있는 문제. from collections import deque def solution(board, moves): stack = deque([]) answer = 0 for move in moves: for i in range(len(board)): if board[i][move-1] != 0: stack.append(board[i][move-1]) board[i][move-1] = 0 break if len(stack) >= 2 and stack[-1] == stack[-2]: stack.pop() stack.pop() answer += 2 return answer
[Flutter, Figma] Figma 와이어프레임 Flutter 화면으로 변환하기 - Figma to Flutter
Figma wireframe으로 화면 디자인 후, 그대로 flutter 코드로 편하게 옮기고 싶어 찾아보고 정리했다. 그런데 이 방법은, 한 페이지 전체보다는 디자인된 버튼이나, 구성 요소를 옮겨오고 싶을 때 쓰는 것이 더 적절할 것 같다. 1. 와이어프레임 제작 & Component 생성 Figma에서 작업 후, Flutter 화면으로 만들고 싶은 페이지를 선택해서 Ctrl+Alt+K 또는 우클릭 후 Create Component를 눌러 Component를 생성해 준다. 컴포넌트 생성을 안 하면 나중에 안 뜸. 2. Figma Personal Access Token 생성 (개인 API Key) 먼저, 피그마에 로그인 후 개인 화면에서 우측 상단 프로필을 눌러 Setting에 들어간다. Settings에..
[프로그래머스] 42884. 단속카메라
[프로그래머스] 42884. 단속카메라 - 파이썬 https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 그리디하게 풀어내면 어렵지 않게 풀 수 있다. 크게 생각할 거리가 없었던 문제. 풀이 routes 배열을 우선 진출 지점 기준으로 정렬해준 뒤, 배열을 하나씩 순회하며 검사. 범위 안에 카메라가 없다면 진출 지점에 카메라를 설치 (가장 적게.. Greedy하게 카메라를 설치하게 되는 최적의 위치) 범위 안에 카메라가 이미 설치되었다면 continu..
[프로그래머스] 42861. 섬 연결하기
https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 최소 신장 트리 (MST)의 Kruskal 알고리즘을 이용하여 풀었음. 우선 cost에 따라 오름차순으로 배열 정렬. vertex의 연결을 저장하고, Union-Find에 이용할 dicionary를 하나 생성하고, union-find를 구현(find, union func.) Kruskal 알고리즘을 적용해 cost가 낮은 순으로 정렬한 edge들에 대해 순회하며 사이클이 생기지 않도록 간선(..
[백준] 2437. 저울
https://www.acmicpc.net/problem/2437 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓 www.acmicpc.net 풀이를 생각해내기 쉽지 않았던 문제. 풀이 입력된 숫자 배열을 오름차순으로 정렬한 후 검사. 만약 [이전의 숫자들을 더한 결과 + 1] < [다음 숫자] 라면, 더해서 만들 수 없는 수가 생기게 됨. EX 1 - [1, 2, 2, 7, 9, 13, 15] 1+2+2 + 1 < 7 이므로 '6' 을 만들 수 없음 EX 2 - [1, 1, 4, 9, 13] 1+1 + 1 < 4 이므로 '3..
[백준] 1700. 멀티탭 스케줄링
[백준] 1700. 멀티탭 스케줄링 - 파이썬 https://www.acmicpc.net/problem/1700 1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전 www.acmicpc.net 풀이 플러그를 새로 꽂을 때마다 경우의 수가 나눠지는데 플러그 자리가 남아 있을 때 꽂혀 있는 기기를 그대로 사용 플러그 하나를 빼야 함. 1, 2번은 그냥 처리하면 되고, 3번을 처리하는 방법이 문제다. Greedy하게 처리하자면, 앞으로 쓸 일이 없거나, 가장 나중에 사용할 기기를 빼는 것이 최선이므로, 그렇게 처리함. from collection..