[Programmers][Python] Lv.1 모의고사
·
🚩 Coding Test/Programmers
Overview체감 난이도: ★☆☆☆☆문제 레벨: Lv.1 문제 유형: 완전탐색풀이 상태: 답안참고 / 스스로 해결추후: 다시 풀어보기 / 간단 복습 / 완벽 이해 [문제]https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  [코드]덱을 사용해서 rotate하면서 one, two, three 를 answer 와 비교해준다.  from collections import dequedef solution(answers): answer = [] o..
[Programmers][Python] Lv.1 키패드 누르기
·
🚩 Coding Test/Programmers
Overview체감 난이도: ★★☆☆☆문제 레벨: Lv.1문제 유형: 구현?풀이 상태: 답안참고 / 스스로 해결추후: 다시 풀어보기 / 간단 복습 / 완벽 이해 [문제]https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   [조건]1. 손가락은 상, 하, 좌, 우로 이동한다. 2. 왼손, 오른손 각각 초기 위치: * #3. 1, 4, 7 (왼손) / 3, 6, 9 (오른손) / 2, 5, 8, 0 (왼손과 오른손 중 더 가까운 손 - 거리가 같다면 왼..
[BOJ][Python] 9461 파도반 수열
·
🚩 Coding Test/Baekjoon
Overview체감 난이도: ★★☆☆☆문제 레벨: 실버 3문제 유형: DP풀이 상태: 답안참고 / 스스로 해결추후: 다시 풀어보기 / 간단 복습 / 완벽 이해 [문제]https://www.acmicpc.net/problem/9461 [코드]1. 점화식을 구한다. n = (n - 2) + (n - 3)2. 메모이제이션 기법으로 계산 값을 저장해놓고 해당 값이 호출되면 그 값을 더해준다. # S3_9461_파도반 수열.pydef padovan(n): if memo[n] != -1: return memo[n] if n
[Programmers][Python] Lv.1 크레인 인형뽑기 게임
·
🚩 Coding Test/Programmers
Overview체감 난이도: ★☆☆☆☆문제 레벨: Lv.1문제 유형: 스택풀이 상태: 답안참고 / 스스로 해결추후: 다시 풀어보기 / 간단 복습 / 완벽 이해 [문제]https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  [코드]풀이 방법- moves 배열에 있는 idx 값 위치로 간다. (board[i][j] 중 j에 해당) idx 값이 1부터 시작하므로 -1 해준다. - board[i][idx-1] 에서 0 값을 만나지 않을 때까지 i 를 돌려준다...
[BOJ][Python] 4375 1
·
🚩 Coding Test/Baekjoon
Overview체감 난이도: ★☆☆☆☆문제 레벨: 실버 3문제 유형: 수학, 브루트포스 알고리즘, 정수론풀이 상태: 답안참고 / 스스로 해결추후: 다시 풀어보기 / 간단 복습 / 완벽 이해 [문제]https://www.acmicpc.net/problem/4375  [코드]idea 1: 문자열 1, 11, 111, 1111, 11111, ... 문자를 하나씩 늘려가면서 n으로 나누어 떨어지는지 확인한다. (문자로 계산)* 다만, 이중 반복문으로 시간복잡도가 O(N^2) 이다. import sysfor n in sys.stdin: # 입력의 종료 조건을 모를 때 n = n.strip() if n == '': # if문으로 공백이 들어왔을 때 종료해준다. break ..
[BOJ][Python] 1629 곱셈
·
🚩 Coding Test/Baekjoon
Overview체감 난이도: ★★★★☆문제 레벨: 실버 1문제 유형: 수학, 분할 정복을 이용한 거듭제곱풀이 상태: 답안참고 / 스스로 해결추후: 다시 풀어보기 / 간단 복습 / 완벽 이해 [문제]https://www.acmicpc.net/problem/1629 [코드]첫번째 풀이 - 그냥 구현a, b, c = map(int,input().split())print(a**b%c) - 파이썬으로 풀면 쉽게 풀리는 것들이 종종 있어서 왜 이게 실버 문제이지? 파이썬이라서 그런가 하고 풀었다. - 제한 조건인 시간을 보지 못했던 것이었다. 당연히 시간 초과 발생  두번째 풀이 - 분할정복  # S1_1629_곱셈.pydef dac(a, b, c): if b == 1: return a % c ..
[BOJ][Python] 3986 좋은 단어
·
🚩 Coding Test/Baekjoon
Overview체감 난이도: ★☆☆☆☆문제 레벨: 실버 4문제 유형: 자료구조, 스택풀이 상태: 답안참고 / 스스로 해결추후: 다시 풀어보기 / 간단 복습 / 완벽 이해 [문제]https://www.acmicpc.net/problem/3986   [코드]# S4_3986_좋은 단어.pyn = int(input())cnt = 0for i in range(n): s = input() st = [] for j in range(len(s)): # s 돌면서 스택이 비었거나 top과 다른 문자이면 push if len(st) == 0: st.append(s[j]) elif st[-1] == s[j]: # top과 문자가 같으면 pop ..
[BOJ][Python] 1940 주몽
·
🚩 Coding Test/Baekjoon
Overview체감 난이도: ★★☆☆☆문제 레벨: Silver 4문제 유형: 정렬, 두포인터풀이 상태: 답안참고 / 스스로 해결추후: 다시 풀어보기 / 간단 복습 / 완벽 이해 [문제]https://www.acmicpc.net/problem/1940  [코드]첫 번째 풀이 - combinations 조합을 사용해서 조합의 합이 M이면 cnt를 하나씩 세주는 걸로 구현하였다. - 시간 초과가 발생 - 시간 복잡도: O(N^2) # S4_1940_주몽.pyfrom itertools import combinations as cN = int(input()) # 재료의 개수M = int(input()) # 갑옷을 만드는 데 필요한 수arr = list(map(int, input().split())) # 재료들 고..
[BOJ][Python] 1213 팰린드롬 만들기
·
🚩 Coding Test/Baekjoon
[문제]https://www.acmicpc.net/problem/1213  [코드]1. 딕셔너리로 문자들의 개수를 세어주고,2. 개수가 홀수인 문자가 1개보다 많으면, 팰린드롬을 만들 수 없으므로 조건에서 말한 예외 출력을 해주었다. 3. 딕셔너리를 사전 순으로 정렬을 해준다. (예제 입출력을 봤을 때, 사전순으로 출력한 것을 확인할 수 있었다. )4. 개수가 홀수인 문자가 있을 경우, x에 그 문자를 한 번 추가해주고, 5. 다른 문자들은 반씩 나누어서 추가해주었다. s = input()# 딕셔너리 만들기d = {}for i in s: if i not in d: d[i] = 1 else: d[i] += 1# 개수가 홀수인 문자 세기cnt = 0for k, v in d.items(): i..
[BOJ][Python] 9375 패션왕 신해빈
·
🚩 Coding Test/Baekjoon
[문제]https://www.acmicpc.net/problem/9375  [코드]진짜 여러 번 틀렸는데, 옷 종류를 선택하지 않는 경우의 수도 합쳐서 계산을 해야한다. - 대신 아무 것도 입지 않은 경우를 빼주어야 하기 때문에 출력에서 -1 을 해준다. T = int(input())for tc in range(T): n = int(input()) d = {} for i in range(n): cloth, ctype = input().split() if ctype in d: d[ctype] += 1 else: d[ctype] = 1 s = 1 for key, value in d.items(): ..