parse: 문자열을 datetime 객체로 변환dict(zip(keys, values)): 문자열 2개로 딕셔너리 생성relativedelta: month 이상 날짜 단위 연산에 사용timedelta: day 이하 날짜 단위 연산에 사용
map(function, list): 리스트의 모든 원소에 함수 적용2부터 n-1까지의 모든 수로 나누어서 나머지가 0인 경우가 없는 수 소수 판별3개의 리스트에서 서로 다른 3개의 수를 인덱스가 한 방향 순서대로 하나씩 뽑아 합하여 중복 제거boolean 리스트에서
\+ 다른 풀이fromkeys(keys, value): 딕셔너리 value 초기화빈 배열로 초기화하게 되면 append에서 value 전체가 하나의 빈 배열로 취급하는 것 같음 -> zip 활용 필요딕셔너리 하나 줄이고 index를 반환해서 answer에 바로 저장(그
내적 3진법 뒤집기 두 개 뽑아서 더하기
순위와 당첨 숫자 개수의 합이 7인 점을 이용해 계산\+ 다른 풀이for문 없이 각 변수를 한 줄로 count하고 당첨 숫자 개수를 인덱스로 하는 rank 배열을 선언
\+ 다른 풀이제곱수는 약수의 개수가 홀수라는 점을 활용
업로드중..
정규식을 활용한 함수와 strip 함수는 따로 조건 필요 X인덱스 -1은 끝에서 첫번째
bin 함수를 이용해 2진수 계산 가능앞에 0b가 붙은 결과로 반환되므로 2: 슬라이싱
\*이 앞 숫자까지 두 배가 되게 하므로 배열의 pop 함수 사용(스택)배열에 각자 계산한 결과를 저장했다가 전체 합 구하기
딕셔너리를 사용해서 stage별 사용자 수 분류
replace(str만 가능)를 사용해 문자열을 숫자로 변환
열마다 인형을 계산할 수 있도록 2차원 배열 90도 회전전체 2차원 배열에서 비어있는 칸(0) 제거인형 뽑기 기계에서 뽑아서 사라지므로 pop 사용인형 뽑기 기계에서 pop한 인형과 뽑은 인형 배열의 마지막 인형이 일치하면, 터진 인형 카운트에 2를 더하고 마지막 인형
2차원 배열로 키패드 생성키패드의 왼쪽 열(인덱스가 0인 열)은 왼손('L'), 키패드의 오른쪽 열(인덱스가 2인 열)은 오른손('R')으로 출력하고 양쪽 손가락의 위치(숫자)를 저장하는 배열에 추가가운데 열(인덱스가 1인 열)에 위치한 숫자를 누르게 되는 경우, 양쪽
앞의 튜플을 뒤집어서 비교하는 방법을 사용하려 했는데 집합으로 묶어 중복이 제거되어도 왔던 길을 다시 가는 경우가 8가지 튜플 내에서의 정렬을 통해 중복 제거 이동할 때 x나 y 둘 중 하나는 변하지 않는다는 점을 이용 x와 x2가 일치하면 y와 y2를 크기순으로
주어진 s에 포함되지 않는 알파벳은 제거한 배열 lpop한 마지막 원소(reversed 하기 전 원래는 첫번째 원소)와 하나씩 비교하여 두 배열의 순서가 일치하는지 확인
heapq를 사용한 dijstra 알고리즘을 통해 최소 거리 계산
w가 앞에서 이미 나왔던 중복되는 단어인 경우와 앞에 나온 단어의 마지막 문자-1와 이번 단어의 첫번재 문자0가 일치하지 않는 경우, 게임 종료되고 틀린 플레이어 번호와 몇번째 라운드였는지 계산해서 반환
업로드중..처음엔 이길 횟수가 정해져 있어서 두 배열 모두 sort()만 하면 된다고 생각했는데, 정렬을 한 뒤 비교하는 상황에서 내가 가지고 있는 수가 연속으로 상대방과 같은 순서에서 작다면 두 번째 수가 상대방의 첫번째 수보다 클 경우가 존재
굳이 기지국의 위치를 배열로 표현할 필요없는 문제
처음엔 짝수와 홀수만 더하면 해결되는 줄 알았는데 짝수와 홀수가 섞인 1번째와 4번째를 더한 결과가 더 클 수 있는 경우가 존재0번째 스티커와 마지막 스티커는 같이 사용될 수 없으므로 둘 중 0번째만 포함한 배열과 마지막만 포함한 배열로 2번 계산
문제 ✨ > 1138번: 한 줄로 서기) N명의 사람들은 매일 아침 한 줄로 선다. 이 사람들은 자리를 마음대로 서지 못하고 오민식의 지시대로 선다. 어느 날 사람들은 오민식이 사람들이 줄 서는 위치를 기록해 놓는다는 것을 알았다. 그리고 아침에 자기가 기록해 놓은
문제 ✨ > 2346번: 풍선 터트리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선이 있다. 각 풍선 안
문제 ✨ > 14503번: 로봇 청소기 로봇 청소기와 방의 상태가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 방은 $N \times M$ 크기의 직사각형으로 나타낼 수 있으며, $1 \times 1$ 크기의 정사각형 칸으로
문제 ✨ > 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In Fir
14502번: 연구소인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다.연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의
2839번: 설탕 배달상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다.상근이는 귀찮기 때문에, 최대한
9095번: 1, 2, 3 더하기정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다.1+1+1+11+1+21+2+12+1+12+21+33+1정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는
1463번: 1로 만들기정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다.1\. X가 3으로 나누어 떨어지면, 3으로 나눈다.2\. X가 2로 나누어 떨어지면, 2로 나눈다.3\. 1을 뺀다.정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서
11726번: 2×n 타일링2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.가로 길이를 1과 2의 합으로 나타낼 수 있는 경우의 수f(n) = f(n-2)
문제 ✨ > 1149번: RGB 거리 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아
문제 ✨ > 2579번: 계단 오르기 계단 오르는 데는 다음과 같은 규칙이 있다. 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다. 연속된 세 개의 계단을 모두 밟아서는 안
문제 ✨ > 1522번: 문자열 교환 a와 b로만 이루어진 문자열이 주어질 때, a를 모두 연속으로 만들기 위해서 필요한 교환의 회수를 최소로 하는 프로그램을 작성하시오. 이 문자열은 원형이기 때문에, 처음과 끝은 서로 인접해 있는 것이다. 예를 들어, aabbaaab
구하는 값을 이분 탐색의 범위로 설정 -> 공유기 설치 거리mid 간격으로 설치할 경우, 더 많은 공유기 설치 가능 -> 간격 증가(left+1)mid 간격으로 설치할 경우, 모든 공유기 설치 가능 -> 올바른 간격 저장, 종료 조건(left+1)mid 간격으로 설치할
투 포인터 알고리즘if-else문으로 구현하게 되면 배열의 마지막 숫자가 고려되지 X\-> end가 증가하고 while문에서 걸려서 answer 최소값 갱신 불가\-> 배열 마지막에 사용하지 않는 숫자 0을 추가하여 실행\-> for 루프로 end 포인터가 끝까지 증가