일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 회고
- 해시테이블
- 운영체제
- 자료구조
- Next.js
- 30daysdowoonchallenge
- 프로그래머스
- mysemester
- useState
- 코드스테이츠
- Til
- 백준
- 큐
- redux
- level1
- 생활코딩
- 카카오
- vercel
- React
- CSS
- javascript
- superstarjypnation
- UI
- UX
- 프로토타입
- 자바스크립트
- REST_API
- web
- 스택
- html
- Today
- Total
목록algorithm (54)
데굴데굴
10845번: 큐 (acmicpc.net) 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 분명 맞게 푼 것 같았는데 답과는 다르게 출력돼서 뭐지..? 했는데 queue를 for문 내에 정의한 걸 디버깅하다가 깨달았다^^ 그리고 pop을 수행할 때에도 리턴한 값을 출력하기 위해서 print()를 씌워줘야 한다. 비슷한 스택 문제를 풀어봤어서 비교적 수월하게 풀 수 있었다. 이 문제도 역시 n의 입력이 1부터 10000까지 주어지기 때문에 빠른 처리를 위해서 sys 모듈을 사용해야 한다. n도 명..
코딩테스트 연습 - [1차] 비밀지도 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 1. 십진수 입력을 이진수로 변환하기 2. 지도1과 지도2의 암호화된 배열 비교하기 3. 비교 후 공백과 '#'으로 표현한 code를 차례차례 answer 리스트에 넣어주기 def solution(n, arr1, arr2): answer = [] bin1 = [] bin2 = [] # 이진수로 변환하기 for dec in arr1: bin1.append(bin(dec..
코딩테스트 연습 - 신규 아이디 추천 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 3단계 'new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다.'랑 6단계 16자 초과 시 앞의 15자를 제외한 나머지 문자열 제거하기에서 막혔다. 이 두 부분은 구글링으로 채웠다. def solution(new_id): lower = str(new_id.lower()) # 1단계 allowed = "abcdefghijklmnopqr..
코딩테스트 연습 - 신고 결과 받기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 참고링크: 프로그래머스 - 신고 결과 받기[Python] (velog.io) from collections import defaultdict def solution(id_list, report, k): answer = [] # 중복 제거하기 report = list(set(report)) # 유저가 신고한 id 딕셔너리 생성 user = defaultdict(set) ..
'이것이 취업을 위한 코딩테스트다' 96페이지 # 숫자 카드 게임 n, m = map(int, input().split()) answer = 0 # 각 카드에 적힌 숫자가 n개의 줄로 주어짐 for i in range(n): line = list(map(int, input().split())) # 각 줄에서 가장 작은 값 찾기 min_value = min(line) # max(arg1, arg2) = arg1과 arg2를 비교하여 더 작은 값을 answer에 저장 answer = max(answer, min_value) print(answer) m x n 의 형태로 한 줄씩 입력받는다. 카드게임의 규칙을 해석해보면, 결국 각 줄에서 가장 작은 값을 찾은 후 그 작은 값들 중에서 가장 큰 값을 찾아야 한다..
9012번: 괄호 (acmicpc.net) 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 스택의 원리를 활용하여 푸는 문제이다. 괄호가 일련으로 입력되면 그 괄호들의 쌍이 서로 맞는지 판단하여 YES, NO를 출력해야 한다. 나의 시도 처음에는 stack이라는 이름의 리스트를 만들어서 거기에 append, pop하는 방식으로 시도했다. 왼쪽 괄호가 나오면 stack에 append 해주고, 오른쪽 괄호가 나오면 stack에 있는 왼쪽 괄호를 팝하여 stack을 비운다. 반복적으로..
10828번: 스택 (acmicpc.net) 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 오늘 자료구조 강의에서 스택 공부한 김에 백준에서 스택 문제를 풀어보았다. 다른 경우는 명령어만 입력되는데 push는 명령어와 값이 같이 입력되는 형태라 input에서 어떻게 나눠줘야 할 지 고민이 많았다. input().split()으로 하면 다른 명렁어 처리에서 오류가 발생하고, 리스트는 시간초과가 발생한다. 결국 구글링해보니 대부분이 시간초과 때문에 sys.stdin.readline()을 활용하고..
10870번: 피보나치 수 5 (acmicpc.net) 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 재귀함수를 이용하여 피보나치 수를 만들어야 한다. 피보나치 수열 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 ... n을 입력받은 후 n번째 피보나치 수를 출력해야 한다. ex) n = 5, 출력값은 3 n = int(input()) def fibonacci(n): if n