![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cALfF8/btqKSfLxhYp/9Oq2ZHpXRK0pt9p32PxKXk/img.png)
문제 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거� www.acmicpc.net 풀이 Ai * Bi의 값의 합이 최소가 되는 값을 출력하면 되는 문제다 문제 이해를 위해 A를 재배열할 수 있으나 B는 재배열하지 못한다고 써있지만 그냥 둘다 소팅해서 작은애랑 큰애를 곱해주면 된다. A: 오름차순 정렬, B: 내림차순 정렬 후 A[i]*B[i]를 다 더해주기 import sys N = int(sys.stdin.readline()) A = list(map(int, sys.stdin.readline().split(" "))) B = ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/risic/btqKOBOxVsY/XTI7l0rVy7Gqm9VLSdBm6K/img.png)
문제 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net 풀이 중복을 허용하지 않는 set을 활용해서 풀었다. import sys N = sys.stdin.readline() arr = sorted(list(set(map(int, sys.stdin.readline().split(" "))))) for each in arr: print(each, end=" ")
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b0RnEQ/btqKOCs8rTk/hSQ4PoegRDrzDZ4ZmthLxK/img.png)
문제 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 풀이 브루트포스로 각 날짜마다 상담을 받는경우/안받는 경우 나눠서 큐에 넣었다. import sys import copy from collections import deque N = int(sys.stdin.readline()) T = [] P = [] # N번 돌며 인풋 저장 for _ in range(N): t, p = map(int, sys.stdin.readline().split(" ")) T.append(t) P.append(p) # 큐 생성 queue = deque() # 큐에 초기값 넣어주기 # 배열: 오늘까지 날짜별로 번 돈 (여러 날에 걸쳐 상담을 진행할 경우 첫날에 금액을 저장..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/pR9lA/btqJnFZtask/cievzmKWkMRwRFl9VNCQ90/img.png)
문제 2605번: 줄 세우기 점심시간이 되면 반 학생 모두가 한 줄로 줄을 서서 급식을 탄다. 그런데 매일 같이 앞자리에 앉은 학생들이 앞에 줄을 서 먼저 점심을 먹고, 뒷자리에 앉은 학생들은 뒤에 줄을 서 늦게 점심을 � www.acmicpc.net 풀이 학생이 최대 100명이니 그냥 학생수만큼 다 돌려보면 된다. selected배열을 받아올때 .split(" ")을 했다가 런타임에러가 나서 .split()으로 바꿔줬다. 결과적으로는 같음 (www.acmicpc.net/board/view/50262 참고) import sys N = int(sys.stdin.readline().strip()) selected = list(map(int, sys.stdin.readline().split())) li = [..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b0soGi/btqIN9Hmb6Z/9awNf6NKmzq8IVoHXIqlIK/img.png)
문제 1717번: 집합의 표현 첫째 줄에 n(1≤n≤1,000,000), m(1≤m≤100,000)이 주어진다. m은 입력으로 주어지는 연산의 개수이다. 다음 m개의 줄에는 각각의 연산이 주어진다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 a가 �� www.acmicpc.net 풀이 처음엔 문제에서 설명하는 순서대로 인접리스트를 만들고, set으로 풀었는데 메모리 초과가 났다. 따라서 disjoint set을 사용해서 풀어야하는데 루트배열을 두고 서로 루트가 같으면 같은 집합에 속해있는것으로 판단하면 된다. 먼저 n의 크기의 root 배열을 만들고, i(본인)로 채운다. i 0 1 2 3 4 5 6 7 root[i] 0 1 2 3 4 5 6 7 그 후 a, b 두 집합을 합치기 위해서는 a의 ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/HXooA/btqIvYFsVk2/uKet5FPIMT3HclMyFXcBmK/img.png)
문제 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 풀이 브루트포스는 늘 정말 이 방법 뿐일까..? 싶어서 주저하게 된다. M과 N이 모두 20 이하의 수라서 브루트포스로 다 돌려줬다. lock에 key를 끼워봐야하는데, 키가 락 위에 일부분만 걸쳐있어도 되는거라 락의 주위로 빈 공간을 만들어주는게 포인트인 문제. 사실 그렇게 풀지 않아도 되는 방법이 있겠지만 빈 공간을 만들어주면 포문만 돌리면 돼서 편리하다. 포문이 많으면 범위를 자꾸 실수해서 그러지 않으려고 옆에 그림을 그려두고 했는데도 실수했다. 시험 당일엔 사소한 실수에 말린다 ㅜㅜ 만약 답이 안나..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bEzqYa/btqIrvQE3iw/KwXEWraKAhWtLK642uV2VK/img.png)
문제 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴� programmers.co.kr 풀이 구현 자체는 전혀 어렵지 않은 문제다. 다만 스텝바이스텝 정확하게 뭘 하라는건지 설명을 이해하는게 어려웠다 3. 문자열 u가 "올바른 괄호 문자열" 이라면 문자열 v에 대해 1단계부터 다시 수행합니다. 수행한 결과 문자열을 u에 이어 붙인 후 반환합니다. 4-2. 문자열 v에 대해 1단계부터 재귀적으로 수행한 결과 문자열을 이어 붙입니다. 1단계부터 어디까지 하라는건지 고민했는데 알고보니 전체 solution함수 자체를 돌리라는 말이었다. 교훈: 문제..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/lPrfQ/btqIl732pgU/LydaaJ8Bni9N5rddfQkCg1/img.png)
문제 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 풀이 들어온 문자열 중 출력해야하는 명령은 큐에 담아 관리했고, uid와 닉네임 관리는 파이썬의 dictionary 자료형을 사용해서 관리했다. from collections import deque def solution(record): # 큐로 관리 queue = deque() dic = {} # 문자열 하나씩 for each in record: cmd = each.split(" ")[0] uid = each.split(" ")[1] if cmd == "..
- Total
- Today
- Yesterday
- 코틀린 바텀네비게이션
- 코틀린 뷰바인딩
- 백준
- 프로그래머스
- Kotlin
- kotlin fragment
- 백준 1806
- 안드로이드
- 안드로이드 키해시
- 투포인터 알고리즘 파이썬
- 카카오톡으로 로그인 오류
- 백준 2003
- 코틀린 리스트뷰
- 데이터바인딩 뷰바인딩 차이
- 백준알고리즘
- TextFormField keyboard
- 전화번호목록 파이썬
- 투포인터 알고리즘
- 코틀린
- 소수 구하기 파이썬
- counting sort
- 파이썬 최대공약수
- 카카오 키해시
- 코틀린 뷰페이저
- flutter simultor
- 안드로이드 카카오톡으로 로그인
- 카카오 기출
- 시뮬레이터 키보드
- 백준 1644
- 코틀린 데이터바인딩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |