객체지향 프로그래밍여러 독립 객체들의 상호작용(소통) 관점을 가지는 것.객체'속성'과 '행동'으로 이루어진 것.자동차의 바퀴, 핸들, 의자, 엑셀, 브레이크, 엔진 등은 속성이고, 주행, 정지, 좌/우회전은 행동이 된다.속성과 행동을 정의할 수 있다면 객체로 표현할 수
● 공통점여러 데이터를 담을 수 있는 컨테이너형 변수이다.인덱스를 통해 특정 요소에 접근할 수 있다.for item in lst: passfor item in tpl: passlst0 = 9 tpl0 = 9 \`\`\`따라서 LIST는 DICTIONARY의 KEY로 쓸
1\. mapsyntax: map(function, iterable)You can use a for loop to apply something to all elements in a list.You can do exactly the same by using map. Th
문제 정의/조건 당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러 줘야 할 동전의 최소 개수를 구하라. 단, 거슬러 줘
문제 정의한 마을에 모험가가 N명 있다. 모험가 길드에서는 N명의 모험가를 대상으로 공포도를 측정했는데, 공포도가 높은 모험가는 쉽게 공포를 느껴 위험 상황에서 제대로 대처할 능력이 떨어진다.모험가 길드장인 동빈이는 모험가 그룹을 안전하게 구성하고자 공포도가 X인 모험
문제정의어떠한 수 N이 1이 될 때까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려고 한다. 단, 두 번째 연산은 N이 K로 나누어떨어질 때만 선택할 수 있다.N에서 1을 뺀다.N을 K로 나눈다.예를 들어 N이 17, K가 4라고 가정하자. 이때 1번의 과정
문제정의여행가 A는 N × N 크기의 정사각형 공간 위에 서 있다. 이 공간은 1 × 1 크기의 정사각형으로 나누어져 있다.가장 왼쪽 위 좌표는 (1, 1)이며, 가장 오른쪽 아래 좌표는 (N, N)에 해당한다.여행가 A는 상, 하, 좌, 우 방향으로 이동할 수 있으며
문제정의정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는모든 경우의 수를 구하는 프로그램을 작성하라. 예를 들어 1을 입력했을 때,다음은 3이 하나라도 포함되어 있으므로 세어야 하는 시각이다00시 00분 03
문제정의행복 왕국의 왕실 정원은 체스판과 같은 8 X 8 좌표 평면이다. 왕실 정원의 특정한 한 칸에 나이트가 서 있다. 나이트는 매우 충성스러운 신하로서 매일 무술을 연마한다.나이트는 말을 타고 있기 때문에 이동을 할 때에는 L자 형태로만 이동할 수 있으며 정원 밖으
문제정의알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 입력으로 주어집니다.이때 모든 알파벳을 오름차순으로 정렬하여 이어서 출력한 뒤에, 그 뒤에 모든 숫자를 더한 값을 이어서 출력합니다.예를 들어 K1KA5CB7이라는 값이 들어오면 ABCKK13을 출력합니다.입/출
StackQueue재귀함수factorial유클리드 호제법 : 두 자연수의 최대공약수 구하기두 자연수 A, BA를 B로 나눈 나머지 RA와 B의 최대공약수는 B와 R의 최대공약수와 같다.
DFS깊이 우선 탐색 알고리즘으로 그래프에서 깊은 노드를 우선적으로 탐색하는 알고리즘스택 자료구조 또는 재귀함수를 이용동작 과정탐색 시작 노드를 스택에 삽입 후 방문처리스택의 최상단 노드에 방문하지 않은 인접 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문처리. 방
문제정의N x M 크기의 얼음 틀이 있습니다. 구멍이 뚫려있는(사용가능한) 부분은 0 칸막이가 존재하는(사용불가능한) 부분은 1로 표시됩니다. 구멍이 뚫려있는 부분끼리 상, 하, 좌, 우로 붙어있는 경우 서로 연결되어있는 것으로 간주합니다. 이 때 얼음 틀의 모양이 주
문제설명동빈이는 N x M 크기의 직사각형 형태의 미로에 갇혔습니다. 미로에는 여러 마리의 괴물이 있어 이를 피해 탈출해야 합니다.동빈이의 위치는 (1,1)이며 미로의 출구는 (N,M)의 위치에 존재하며 한 번에 한 칸씩 이동할 수 있습니다. 이때 괴물이 있는 부분은
정렬7 5 9 0 3 1 6 2 4 80 1 2 3 4 5 6 7 8 91\. 선택정렬왼쪽에서부터 하나씩(처리되지 않은 데이터) 가장 작은 데이터를 선택해서 맨 앞에 있는 데이터와 바꾸는 것을 반복합니다.가장 비효율적인 알고리즘입니다.7 5 9 0 3 1 6 2 4 8
문제정의배열 크기 n, 교체횟수 k 가 주어졌을 때, k번 데이터를 교체하여 a 리스트의 원소 합이 최대가 되게 하시오.입력조건첫 번째 줄에 n, k가 공백을 기준으로 구분되어 입력됩니다. (1 <= N <= 100,000, 0 <= K <= N)
탐색 알고리즘순차 탐색: 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 확인하는 방법이진 탐색: 정렬되어 있는 리스트에서 시작점, 끝점, 중간점을 이용해 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법예시: 정렬된 10개의 데이터 중 값이
문제정의오늘 동빈이는 여행 가신 부모님을 대신해서 떡집 일을 하기로 했습니다. 오늘은 떡볶이 떡을 만드는 날입니다.동빈이네 떡볶이 떡은 재밌게도 떡볶이 떡의 길이가 일정하지 않습니다. 대신에 한 봉지 안에 들어가는 떡의 총 길이는 절단기로 잘라서 맞춰줍니다. 절단기에
문제정의N개의 원소를 포함하고 있는 수열이 오름차순으로 정렬되어 있습니다. 이때 이 수열에서 x가 등장하는 횟수를 계산하세요.예를 들어 수열 {1, 1, 2, 2, 2, 2, 3}이 있을 때 x = 2라면, 현재 수열에서 값이 2인 원소가 4개이므로 4를 출력합니다.단
피보나치 수열피보나치 수열은 다음과 같은 형태의 수열이며, 다이나믹 프로그래밍을 활용해 효과적으로 계산할 수 있습니다.1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,...점화식이란 인접한 항들 사이의 관계식을 의미합니다.피보나치 수열을 점화식으로 표
문제 정의개미 전사는 부족한 식량을 충당하고자 메뚜기 마을의 식량창고를 몰래 공격하려고 합니다. 메뚜기 마을에는 여러 개의 식량창고가 있는데 식량창고는 일직선으로 이어져 있습니다.각 식량창고에는 정해진 수의 식량을 저장하고 있으며 개미 전사는 식량창고를 선택적으로 약탈
문제정의정수 X가 주어졌을 때, 정수 X에 사용할 수 있는 연산은 다음과 같이 4가지 입니다.X가 5로 나누어 떨어지면, 5로 나눕니다.X가 3로 나누어 떨어지면, 3으로 나눕니다.X가 2로 나누어 떨어지면, 2로 나눕니다.X에서 1을 뺍니다.정수 X가 주어졌을 때,
문제정의N가지 종류의 화폐가 있습니다. 이 화폐들의 개수를 최소한으로 이용해서 그 가치의 합이 M원이 되도록 하려고 합니다. 이때 각 종류의 화폐는 몇 개라도 사용할 수 있습니다.예를 들어 2원, 3월 단위의 화폐가 있을 때는 15원을 만들기 위해 3월을 5개 사용하는
문제정의n x m 크기의 금광이 있습니다. 금광은 1 x 1 크기의 칸으로 나누어져있으며, 각 칸은 특정한 크기의 금이 들어있습니다.채굴자는 첫 번째 열부터 출발하여 금을 캐기 시작합니다. 맨 처음에는 첫 번째 열의 어느 행에서든 출발할 수 있습니다. 이후에 m-1 번
문제정의N명의 병사가 무작위로 나열되어 있습니다. 각 병사는 특정한 값의 전투력을 보유하고 있습니다.병사를 배치할 때는 전투력이 높은 병사가 앞쪽에 오도록 내림차순으로 배치를 하고자 합니다. 즉, 앞쪽에 있는 병사의 전투력이 항상 뒤쪽에 있는 병사보다 높아야합니다.배치
배열의 특정 연속된 구간을 처리하는 경우문제에서 연속된 데이터 구간을 처리하기 원한다면예시1자연수로 구성된 수열에서 합이 x인 부분 연속 수열의 개수를 구하시오예시2N가의 정수로 구성된 수열이 있다.L, R로 구성된 M개의 쿼리 정보가 주어졌을 때, 각 쿼리에 해당하는
www.acmicpc.net/problem/2630문제정의0은 흰색, 1은 파란색이다. 각 색깔 별로 몇개의 정사각형 색종이를 만들수 있는지 찾으시오.예시에서는 9개의 흰색종이와 7개의 파란색종이를 만들 수 있다.정답코드재귀~
문제정의자연수 n이 주어졌을 때, n이 소수인지 아닌지 판별하시오.풀이12부터 n-1까지 나누기 연산을 해야하기 때문에 시간복잡도는 O(n)입니다.약수의 성질n의 제곱근까지만 확인하면 됩니다.풀이22부터 n-1의 제곱근까지 나누기 연산을 해야하기 때문에 시간복잡도는 O
문제정의그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는
문제: 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다.한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창
문제피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다.n=17일때 까지 피보나치 수를 써
문제우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x >
문제준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.입력첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1
문제자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열입력첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)출력한 줄에 하나씩 문제의 조건을
내가 짠 코드
코드(성공)
아이디어두 번의 loop 를 돌면서 오름차순인지 내림차순인지 확인할 수 있지만,한 번의 loop에서 직전 것과 비교하는 방식으로 처리할 수 있다.
코드(성공)
내가짠코드잘짠코드기존 리스트(priorities)와 내림차순으로 정렬된 리스트(search)를 따로 가져갑니다.기존 리스트의 index도 함께 봅니다.search에서는 cursor 변수를 생성좋아요 제일 많이 받은 코드
내가짠코드각 작업의 남은 기간(일)을 계산해서 넣었습니다.만약 직전 작업의 남은 기간(일)이 더 긴 경우, 현재 작업의 남은 기간을 덮어씌웁니다.Counter를 활용해서 unique distinct 를 리스트에 담아 return 합니다.
아이디어다리의 길이를 어떻게 처리해야할지가 핵심이었다.직관적으로 queue를 활용해서 빈자리를 0으로 채워서 처리하면 된다.코드(성공)
아이디어가장 몸무게가 많이 나가는 사람과 가장 적게 나가는 사람이 함께 탈 수 없다면, 가장 몸무게가 많이 나가는 사람은 혼자 타는 방법뿐이 없다.코드(성공)
문제아이디어바로 떠올리기 어려운 해법이다ㅠ두 개의 리스트를 활용한다.제거해야할 개수(k)를 낮춰주고, 두 리스트사이에 맞닿아있는 숫자를 비교하면서뒤에서 앞으로 숫자를 보내주는 방식으로 처리한다.코드(성공)응용만약 k개의 수만 선택하는 문제라면 len(numbers) -
내가 짠 코드
https://school.programmers.co.kr/learn/courses/30/lessons/43165BFS와 DFS로 해결할 수 있다.BFS(deque)BFS(stack)DFS(재귀)
https://school.programmers.co.kr/learn/courses/30/lessons/42626/solution_groups?language=python3&type=my아이디어직관적인 로직이다.단순히 스택을 활용해서도 풀 수 있지만, loop
정석초간단문자열의 접두를 찾는 문제이기에 정렬을 활용해 풀수 있다.
inputoutput이렇게 풀어야지...
https://www.hackerrank.com/challenges/greedy-florist/problem?isFullScreen=true문제 설명c에 있는 element들은 flower들이고, 가격으로 표시되어있다. c = 2,5,6이라면, 2달러짜리 꽃,
내가 짠 코드설명컨테이너 간 스왑 기능만이 가능하다.이 말은 각 컨테이너 안에 있는 공의 개수는 변할 수 없다는 것이다.예를 들어 만약 빨간공이 9개, 파란공이 4개가 있는데,1번 컨테이너에는 공이 8개, 2번 컨테이너에는 5개가 있다면 절대로 하나의 컨테이너에 빨간공
문제 https://www.hackerrank.com/challenges/sherlock-and-anagrams/problem?isFullScreen=true Anagram을 간단하게 설명하면, 순서와 상관없이 문자열(1개 포함)의 조합이 2번 이상 존재하는 경우를
내가 짠 코드
from collections import Counterdef steadyGene(gene): gene_len = len(gene) expected_len = gene_len//4 lst = "G", "A", "C", "T" pos_dic
문제요약내림차순 또는 오름차순으로 만들기위해 필요한 최소 swap 수 구하기아이디어리스트를 따로 정렬시켜놓고 앞에서부터 swap하기오름차순, 내림차순을 위한 전체 연산을 두번 해야하는데, 내림차순 정렬을 할 때는 기존 리스트를 뒤집어서 오름차순으로 계산하기중첩 for
https://www.hackerrank.com/challenges/angry-children/problem?isFullScreen=true코드(성공)
https://www.hackerrank.com/challenges/extra-long-factorials/problem?isFullScreen=true코드(성공)