문제 크기가 N×N인 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나. 도시의 칸은 (r, c)와 같은 형태로 나타낸다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리. 치킨 거리는 집을 기준으로 정해지며, 도시의 치킨 거리는 모든 집의 치킨 거리의 합 임의의 두 칸 (r1, c1)과 (r2, c2) 사이의 거리는 |r1-r2| + |c1-c2|로 구한다. 도시에 있는 치킨집 중에서 최대 M개를 고르고, 나머지 치킨집은 모두 폐업시켜야 한다. 어떻게 고르면, 도시의 치킨 거리가 가장 작게 될지 구하는 프로그램을 작성 입력 첫째 줄 : 도시 크기 N(2 ≤ N ≤ 50)과 치킨집 개수 M(1 ≤ M ≤ 13) 둘째 줄부터 N개의 줄 : 도시의 정보( 0 : 빈 칸, 1 : 집, 2 : 치킨 집) 출력 폐..
분류 전체보기
문제 입력으로 주어진 괄호 문자열이 올바른 괄호 문자열(Valid PS, VPS)인지 해당 여부 확인 입력 첫째 줄: 입력 데이터의 수를 나타내는 정수 T T개의 줄: 괄호 문자열 (2 이상 50 이하) 출력 올바른 괄호 문자열(VPS)이면 “YES”, 아니면 “NO”를 한 줄에 하나씩 차례대로 출력 ★Key Point : 스택 n = int(input()) for _ in range(n): list = input() left = 0; #왼괄호 right = 0; #오른괄호 for i in list: if i == '(': left += 1 else: right += 1 print('NO' if left != right else 'YES') 괄호의 개수 비교만 하면 해결할 수 있을 거라고 생각했지만, 다..
문제 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 입력 첫째 줄: 단어의 개수 N 둘째 줄부터 N개의 줄 : 단어( 알파벳 소문자, 중복 X, 최대 길이 100) 출력 그룹 단어의 개수 ★Keypoint : 리스트 인덱싱, in문 파이썬의 in문을 사용하면 짧게 가능한 문제! n = int(input()) count = n # 모두가 다 그룹 단어일 때 최대 그룹단어 개수 for _ in range(n): word = input() for ..
문제 자연수 N을 만드는 연속된 자연수의 합으로 나타내는 가짓수 구하기 입력 정수 N 출력 가짓수 ★Key point : 투 포인터 입력으로 주어지는 자연수 N의 범위가 n) { sum = sum -start; start++; } else { end++; sum = sum + end; } } System.out.println(count); } } 인덱스를 가리키는 두 개의 포인터를 활용해서 연속된 숫자의 묶음을 표현하고, n과 sum의 크기 비교에 따라 각 포인터를 이동시킨다 sum == N: end_index++; sum = sum + end_index; count++; sum N: sum = sum - start_i..
문제 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 사과의 위치와 뱀의 이동경로가 주어질 때 이 게임이 몇 초에 끝나는지 계산 : 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪힐 때 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시킨다. 만약 벽이나 자기자신의 몸과 부딪히면 게임이 끝난다. 만약 이동한 칸에 사과가 있다면, 그 칸에 있던 사과가 없어지고 꼬리는 움직이지 않는다. 만약 이동한 칸에 사과가 없다면, 몸길이를 줄여서 꼬리가 위치한 칸을 비워준다. 즉,..
문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄: 수의 개수 N과 합을 구해야 하는 횟수 M 둘째 줄: N개의 수 셋째 줄부터 M개의 줄 : 합을 구해야 하는 구간 i와 j 출력 총 M개의 줄에 i번째 수부터 j번째 수까지 합을 출력 ★Key point : 누적합 알고리즘 사용하기 각 구간 입력마다 for문을 돌려서 합을 구하면 런타임 에러가 나기 때문! 1 ≤ N ≤ 100,000 1 ≤ M ≤ 100,000 1 ≤ i ≤ j ≤ N import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; class Main { // j) ..
코딩테스트 문제를 풀다가 해설을 봐도 이해가 안 가서 정리하고자 글을 올립니다 Q. 동네 편의점의 주인인 동빈이는 N개의 동전을 가지고 있습니다. 이때 N개의 동전을 이용하여 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하세요. 예를 들어 N = 5이고, 각 동전이 각각 3원, 2원, 1원, 1원, 9원짜리(화폐 단위) 동전이라고 가정합시다. 이 때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 8원입니다. 또 다른 예시로 N = 3 이고, 각 동전이 각각 3원, 5원, 7원짜리(화폐 단위) 동전이라고 가정합시다. 이 때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 1원입니다. A. 화폐 단위를 오름차순으로 정렬한 후, 생성한 target 변수와 크기를 비교한다 targe..
[후기] 9월 2일자로 서일대학교에서 ADP 실기 시험을 봤습니다. 통계공부를 더 해야겠다는 결심과 함께 4시간이 결코 길지 않은 시간임을 느꼈습니다. 시간을 재면서 시험 준비를 해야 실전에서 차분하게 데이터를 해석하고 여러 모델을 적용할 수 있겠더라고요. 기본 전처리나 EDA에서 시간을 단축시켜야 하기 때문에 다른 자료를 보지 않고 수행할 수 있는 정도로 pandas library 를 많이 알고 능숙하게 사용할 줄 알아야 합니다. 다른 공부와 병행하여 ADP 실기 준비에만 투자한 시간이 3주가 되지 않았기 때문에 아쉬움을 느끼기보다 당연한 결과라는 생각이 듭니다. [기계학습] 1-1. 데이터 전처리 및 EDA 1-2. 전처리가 필요한 이유 2-1. 회귀분석에 있어서 만족해야 하는 것을 검증하시오. 2-..
보호되어 있는 글입니다.
AWS - 클라우드 컴퓨팅 : 원격상에 존재하는 서버가 직접 작동되고 운영되며 데이터가 프로세싱 되는 것(로컬 컴퓨터와는 전혀 상관이 없다) - Severless 기능 : 원격에서 클라우드가 서버를 작동시키고 관리하며 메모리 할당에 대해 유연한 방식을 채택하여 혼자 스스로 생존하는 방식 - As You Pay Go 서비스 : 우리가 사용하는 만큼 비용을 지불해야 함. 모든 서비스가 유료는 아님(Free-tier 서비스) - Root 사용자 : 처음 계정을 생성할 때, 만드는 main 사용자