문제링크한국도로공사는 고속도로의 유비쿼터스화를 위해 고속도로 위에 N개의 센서를 설치하였다. 문제는 이 센서들이 수집한 자료들을 모으고 분석할 몇 개의 집중국을 세우는 일인데, 예산상의 문제로, 고속도로 위에 최대 K개의 집중국을 세울 수 있다고 한다.각 집중국은 센서
문제링크석환이는 아기다. 아기 석환이는 자연수가 쓰여져있는 카드를 갖고 다양한 놀이를 하며 노는 것을 좋아한다. 오늘 아기 석환이는 무슨 놀이를 하고 있을까? 바로 카드 합체 놀이이다!아기 석환이는 자연수가 쓰여진 카드를 n장 갖고 있다. 처음에 i번 카드엔 ai가 쓰
문제링크임한수와 임문빈은 서로 사랑하는 사이이다.임한수는 세상에서 팰린드롬인 문자열을 너무 좋아하기 때문에, 둘의 백일을 기념해서 임문빈은 팰린드롬을 선물해주려고 한다.임문빈은 임한수의 영어 이름으로 팰린드롬을 만들려고 하는데, 임한수의 영어 이름의 알파벳 순서를 적절
문제링크나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다.재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기 일쑤였다.재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근
문제링크학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어의 점수는 레벨을 클리어하면서 얻은 점수의 합으로, 이 점수를 바탕으로 온라
문제링크수강신청의 마스터 김종혜 선생님에게 새로운 과제가 주어졌다. 김종혜 선생님한테는 Si에 시작해서 Ti에 끝나는 N개의 수업이 주어지는데, 최소의 강의실을 사용해서 모든 수업을 가능하게 해야 한다. 참고로, 수업이 끝난 직후에 다음 수업을 시작할 수 있다. (즉,
문제링크항승이는 품질이 심각하게 나쁜 수도 파이프 회사의 수리공이다. 항승이는 세준 지하철 공사에서 물이 샌다는 소식을 듣고 수리를 하러 갔다.파이프에서 물이 새는 곳은 신기하게도 가장 왼쪽에서 정수만큼 떨어진 거리만 물이 샌다.항승이는 길이가 L인 테이프를 무한개 가
문제링크효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다. <> 1. 포도주 잔을 선택하면 그 잔에 들어있는 포도
문제링크계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. <그림 1>과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다.예를 들어 <그림 2>와 같이 시작점에서부터
문제링크하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓을 수 있고, 다른 쪽에는 무게를 측정하려는 물건만 올려놓을 수 있다.무게
문제링크정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다.2를 곱한다.1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자.첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다.A를 B로 바꾸는데 필
문제링크정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다.매
문제링크상근이는 겨울방학을 맞아 N개국을 여행하면서 자아를 찾기로 마음먹었다. 하지만 상근이는 새로운 비행기를 무서워하기 때문에, 최대한 적은 종류의 비행기를 타고 국가들을 이동하려고 한다.이번 방학 동안의 비행 스케줄이 주어졌을 때, 상근이가 가장 적은 종류의 비행기
문제링크사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제일 친한 친구인 비버의 굴로 가능한 빨리 도망가 홍수를 피하려고 한다.티떱숲
문제링크 바로 어제 최백준 조교가 방 열쇠를 주머니에 넣은 채 깜빡하고 서울로 가 버리는 황당한 상황에 직면한 조교들은, 702호에 새로운 보안 시스템을 설치하기로 하였다. 이 보안 시스템은 열쇠가 아닌 암호로 동작하게 되어 있는 시스템이다.암호는 서로 다른 L개의 알
문제링크월드초등학교 학생회장 후보는 일정 기간 동안 전체 학생의 추천에 의하여 정해진 수만큼 선정된다. 그래서 학교 홈페이지에 추천받은 학생의 사진을 게시할 수 있는 사진틀을 후보의 수만큼 만들었다. 추천받은 학생의 사진을 사진틀에 게시하고 추천받은 횟수를 표시하는 규
문제링크준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1
한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하
옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다.길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자.S = A0 × B0 + ... + AN-1 × BN-1S의 값을 가장
문제링크남규는 통나무를 세워 놓고 건너뛰기를 좋아한다. 그래서 N개의 통나무를 원형으로 세워 놓고 뛰어놀려고 한다. 남규는 원형으로 인접한 옆 통나무로 건너뛰는데, 이때 각 인접한 통나무의 높이 차가 최소가 되게 하려 한다.통나무 건너뛰기의 난이도는 인접한 두 통나무
문제링크민식이는 수학학원에서 단어 수학 문제를 푸는 숙제를 받았다.단어 수학 문제는 N개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자로만 이루어져 있다. 이때, 각 알파벳 대문자를 0부터 9까지의 숫자 중 하나로 바꿔서 N개의 수를 합하는 문제이다. 같은 알파벳
문제링크백준이는 동생에게 "가운데를 말해요" 게임을 가르쳐주고 있다. 백준이가 정수를 하나씩 외칠때마다 동생은 지금까지 백준이가 말한 수 중에서 중간값을 말해야 한다. 만약, 그동안 백준이가 외친 수의 개수가 짝수개라면 중간에 있는 두 수 중에서 작은 수를 말해야 한다
문제링크차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충
문제링크언제나 최고만을 지향하는 굴지의 대기업 진영 주식회사가 신규 사원 채용을 실시한다. 인재 선발 시험은 1차 서류심사와 2차 면접시험으로 이루어진다. 최고만을 지향한다는 기업의 이념에 따라 그들은 최고의 인재들만을 사원으로 선발하고 싶어 한다.그래서 진영 주식회사
문제링크철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하
문제링크<그림 1>과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다
문제링크이렇게 미로처럼 최단거리를 구할 때 BFS를 사용한다. DFS를 할 경우 풀리는 경우도 있지만 시간초과가 날 때가 있기때문에 BFS를 활용하자!!
링크텍스트N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.첫째 줄부터 N개의
링크텍스트어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다.미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작
문제링크N×M크기의 배열로 표현되는 미로가 있다.미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성
문제링크세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.첫째 줄에
문제링크N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다.이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를
문제링크총 N개의 문자열로 이루어진 집합 S가 주어진다.입력으로 주어지는 M개의 문자열 중에서 집합 S에 포함되어 있는 것이 총 몇 개인지 구하는 프로그램을 작성하시오.첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진
\-> 문제링크신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다.각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다.신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해
문제링크수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오.첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는
문제링크상근이는 나무 M미터가 필요하다. 근처에 나무를 구입할 곳이 모두 망해버렸기 때문에, 정부에 벌목 허가를 요청했다. 정부는 상근이네 집 근처의 나무 한 줄에 대한 벌목 허가를 내주었고, 상근이는 새로 구입한 목재절단기를 이용해서 나무를 구할것이다.목재절단기는 다
링크텍스트어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 첫째 줄에
문제링크가로와 세로를 다시 setting한다.가로 = 주어진 가로,세로 중 큰거세로 = 주어진 가로,세로 중 작은거이렇게 새로 setting하면 접근이 쉬워진다.
링크텍스트Arrays.sort(배열) // 오름차순int\[], double\[] String\[] 배열들...Arrays.sort()와 비슷한 Collections.sort()도 오름차순이지만 배열이 아니라 ArrayList<>() 정렬방법이다.
문제링크3진법을 10진법으로 다시 변환할 때 함수를 만들어서 그안에서 실행하도록 구현했다.다른 사람의 풀이도 봤는데 더 간단한 풀이가 있었다.Integer.parseInt(str,3); 이런식으로 String값을 주고 다음 매개변수 변환하고 싶은 진법을 주면 된다.만약
문제링크이 문제 풀때에는 제곱수가 그렇게 크지 않아 number x number x number 이런식으로 했지만 더 큰 상황에서는 반복해서 쓰기에는 불편한다.그 방법을 해결해 줄 수 있는 것이 Math.pow(숫자,제곱수)를 하면 된다.ex) 3^3 = Math.po
문제링크
문제링크두개의 값을 연결해서 접근하기 위해서는 HashMap을 활용하면 되겠다 싶었지만 class를 만들어서 접근하고 정렬하는 방법이 더 편하고 코드가 깔끔했다. 상황에 따라 HashMap과 class를 만들어서 잘 활용해야겠다.
키패드를 2차배열의 인덱스로 접근하였다.1(0,0) 2(0,1) 3(0,2)4(1,0) 5(1,1) 6(1,2) 7(2,0) 8(2,1) 9(2,2)10(3,0) 11(3,1) 12(3,2)이런식으로 인덱스로 접근한다(\*은 10으로, 0은 11, 1,4,7은 왼
크레인 인형뽑기
2중 for문을 통해 phone_book 길이와 데이터의 String 길이만큼 반복한다.if문에서 phone_book의 데이터를 인덱스를 1개씩 증가해가면서 substring으로 데이터를 쪼개고 쪼갠 접두어가 hashmap에 포함되는지 확인한다.있으면 true 없으면
처음에는 반복문 조건으로 num/2까지 설정했지만 테스트 케이스중 1개가 시간초과가 나오고 효율성에서도 통과하지 못했다.그래서 java에 있는 Math.sqrt(num) 을 사용하니 시간초과도 안나오고 효율성에서도 통과할 수 있었다. 다음부터는 이제 계속 Math.sq
문제 코드
문제링크UCPC는 '전국 대학생 프로그래밍 대회 동아리 연합 여름 대회'의 줄임말로 알려져있다. 하지만 이 줄임말이 정확히 어떻게 구성되었는지는 아무도 모른다. UCPC 2018을 준비하던 ntopia는 여러 사람들에게 UCPC가 정확히 무엇의 줄임말인지 물어보았지만,
문제링크수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다.이런 사실에 놀란 수빈이는 간단한 게임을 만들기로 했다
문제링크민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB이제 '.'와 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때, '.'는 폴리오미노로 덮으면 안 된다.폴리오미노로 모두 덮은
문제링크스네이크버드는 뱀과 새의 모습을 닮은 귀여운 생물체입니다. 스네이크버드의 주요 먹이는 과일이며 과일 하나를 먹으면 길이가 1만큼 늘어납니다.과일들은 지상으로부터 일정 높이를 두고 떨어져 있으며 i (1 ≤ i ≤ N) 번째 과일의 높이는 hi입니다. 스네이크버드
문제링크기다란 벤치 모양의 식탁에 사람들과 햄버거가 아래와 같이 단위 간격으로 놓여 있다. 사람들은 자신의 위치에서 거리가 $K$ 이하인 햄버거를 먹을 수 있다.위의 상태에서 $K = 1$인 경우를 생각해보자. 이 경우 모든 사람은 자신과 인접한 햄버거만 먹을 수 있다
문제링크다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다.fibonacci(3)을 호출하면 다음과 같은 일이 일어난다.fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출한다.fibonacci(2)는 fibonacci
문제링크상근이는 슬로베니아의 도시 Donji Andrijevci를 여행하고 있다. 이 도시의 도로는 깊이가 K인 완전 이진 트리를 이루고 있다. 깊이가 K인 완전 이진 트리는 총 2K-1개의 노드로 이루어져 있다. (아래 그림) 각 노드에는 그 곳에 위치한 빌딩의 번호
문제링크재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고 한다. 이때,
문제링크방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오.첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의
문제링크정사각형으로 이루어져 있는 섬과 바다 지도가 주어진다. 섬의 개수를 세는 프로그램을 작성하시오.한 정사각형과 가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사각형이다. 두 정사각형이 같은 섬에 있으려면, 한 정사각형에서 다른 정사각형으로 걸
문제링크인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다.연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로
문제링크우리 나라는 가족 혹은 친척들 사이의 관계를 촌수라는 단위로 표현하는 독특한 문화를 가지고 있다. 이러한 촌수는 다음과 같은 방식으로 계산된다. 기본적으로 부모와 자식 사이를 1촌으로 정의하고 이로부터 사람들 간의 촌수를 계산한다. 예를 들면 나와 아버지, 아버
문제링크요즘 민규네 동네에서는 스타트링크에서 만든 PS카드를 모으는 것이 유행이다.PS카드는 PS(Problem Solving)분야에서 유명한 사람들의 아이디와 얼굴이 적혀있는 카드이다. 각각의 카드에는 등급을 나타내는 색이 칠해져 있고, 다음과 같이 8가지가 있다.카
문제링크철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다.창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토
문제링크적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다.크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개의 구
문제링크체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 있을까?입력의 첫째 줄에는 테스트 케이스의 개수가 주어진다.각 테스트 케
문제링크세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다.말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은
문제링크N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수
문제링크코레스코 콘도미니엄 8층은 학생들이 3끼의 식사를 해결하는 공간이다. 그러나 몇몇 비양심적인 학생들의 만행으로 음식물이 통로 중간 중간에 떨어져 있다. 이러한 음식물들은 근처에 있는 것끼리 뭉치게 돼서 큰 음식물 쓰레기가 된다. 이 문제를 출제한 선생님은 개인적
문제링크이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오.예를 들어 위와 같은 이진 트리가 입력되면,전위 순회한 결
링크텍스트N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다.아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기
문제링크여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으며, 각 지점 사이의 이동은 지도에서 상하좌우 이웃한 곳끼리만 가능하다.현
문제링크N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다.우리는 수와 수 사이에 연산자를 하나씩 넣어서
문제링크지구 온난화로 인하여 북극의 빙산이 녹고 있다. 빙산을 그림 1과 같이 2차원 배열에 표시한다고 하자. 빙산의 각 부분별 높이 정보는 배열의 각 칸에 양의 정수로 저장된다. 빙산 이외의 바다에 해당되는 칸에는 0이 저장된다. 그림 1에서 빈칸은 모두 0으로 채워
문제링크수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X
🎁문제 문제링크 >그래프의 정점의 집합을 둘로 분할하여, 각 집합에 속한 정점끼리는 서로 인접하지 않도록 분할할 수 있을 때, 그러한 그래프를 특별히 이분 그래프 (Bipartite Graph) 라 부른다. > 그래프가 입력으로 주어졌을 때, 이 그래프가 이분 그래프
문제링크케빈 베이컨의 6단계 법칙에 의하면 지구에 있는 모든 사람들은 최대 6단계 이내에서 서로 아는 사람으로 연결될 수 있다. 케빈 베이컨 게임은 임의의 두 사람이 최소 몇 단계 만에 이어질 수 있는지 계산하는 게임이다.예를 들면, 전혀 상관없을 것 같은 인하대학교의
문제링크1부터 연속적으로 번호가 붙어있는 스위치들이 있다. 스위치는 켜져 있거나 꺼져있는 상태이다. <그림 1>에 스위치 8개의 상태가 표시되어 있다. ‘1’은 스위치가 켜져 있음을, ‘0’은 꺼져 있음을 나타낸다. 그리고 학생 몇 명을 뽑아서, 학생들에게 1 이
문제링크봄버맨은 크기가 R×C인 직사각형 격자판 위에서 살고 있다. 격자의 각 칸은 비어있거나 폭탄이 들어있다.폭탄이 있는 칸은 3초가 지난 후에 폭발하고, 폭탄이 폭발한 이후에는 폭탄이 있던 칸이 파괴되어 빈 칸이 되며, 인접한 네 칸도 함께 파괴된다. 즉, 폭탄이
🧩문제 문제링크 >NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복도로 빠져나온 학생들은 선생님의 감시에 들키지 않는
문제링크The milk business is booming! Farmer John's milk processing factory consists of $N$ processing stations, conveniently numbered $1 \\ldots N$ ($1 \
링크텍스트강을 가로지르는 하나의 차선으로 된 다리가 하나 있다. 이 다리를 n 개의 트럭이 건너가려고 한다. 트럭의 순서는 바꿀 수 없으며, 트럭의 무게는 서로 같지 않을 수 있다. 다리 위에는 단지 w 대의 트럭만 동시에 올라갈 수 있다. 다리의 길이는 w 단위길이(
문제링크웨이트 트레이닝을 좋아하는 어떤 대학원생은, 현재 3대 운동 중량 500의 괴력을 소유하고 있다. 다만, 하루가 지날 때마다 중량이 K만큼 감소한다. 예를 들어 K=4일 때, 3일이 지나면 중량이 488로 감소하게 된다. 따라서 운동을 하지 않고, 가만히 있다면
문제링크N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 < i < N)번 스위치를 누르면 i-1, i, i+1의 세 개의 전구의 상태가 바뀐다. 즉, 꺼져 있는 전구는 켜지고, 켜져 있는
문제링크DFS 방식으로 접근했다.checked boolean 변수를 통해서 해당 문자로 바뀌었으면 true 바꿔주고 dfs가 끝나서 돌아오면 false로 바꿔 주었다\-> 현재 문자에서 바꿀 수 있는 문자일 수도 있지만 다른 문자에서도 바꿀 수 있는 문자일 수도 있기
문제링크Dynamic Programmin(DP)를 이용하였다.7 0 0 0 03 8 0 0 08 1 0 0 02 7 4 4 04 5 2 6 5이런식으로 보는 것이 더 편할 것이다. 각 줄에 첫번째 숫자들은 바로 위칸 첫번째 숫자로만 영향이 미치기 때문에 그 값을 먼저
문제링크dfs를 통해 중복이 없는 모든 조합을 구한다.(순서 상관있음)dfs를 통해 얻은 정보들을 Set을 통해 중복 제거한다(순서 상관없이 중복 제거)3 set의 size을 반환한다.조합은 구했지만 순서에 따른 중복이 허용되지 않기 때문에 중복제거를 어떻게 해야하나
문제링크dfs를 통해 모든 경우의 수를 구한다.Collections.sort를 이용해서 오름차순 정렬을 한다제일 처음 값을 return 형식에 맞게 return한다.
문제링크다른분들의 코드를 참고했습니다1\. 주어진 배열의 양쪽 끝은 항상 남길 수 있다.2\. 인덱스 1번 ~ a.length-1번까지 탐색을 합니다.2-1. i번째 요소가 left보다 작다면 left를 i번째 요소로 바꾸고 answer+1를 해준다.2-2 a.leng
처음에 다익스트라 접근을 하였다. 하지만 끝내 풀지 못해서 풀이과정을 봤는데 다익스트라 방식 말고도 플로이드 와샬 알고리즘 방법을 사용해서 푼 방식도 있었다.다익스트라에 비해 플로이드와샬를 구현하는게 더 코드가 짧고 깔금하게 느껴졌다.1\. 모든 정점들이 다른 정점들과
int배열을 Integer 배열로 바꾼다.(asList를 사용하기 위해)Integer 배열을 asList를 변환 후 subList를 사용하여 List 분해분해된 List를 정렬 후 k번 수 answer에 담기subList 는 List 는 자신이 생성된 parent 값을
문제링크Arrays 람다식 정렬 0만 있는 예외 처리를 하지 않아 오래걸렸다. 예외를 항상 생각하고 접근 해야겠다
문제링크(https://school.programmers.co.kr/learn/courses/30/lessons/42747!\[](https://velog.velcdn.com/images/just_coding/post/4415f3f3-132e-45dd
문제링크w와 h 중 큰 값을 h로 놓고 비교한다.w 중 최댓값 h 중 최댓값 구한다.w \* h 반환한다.
문제링크수포자들의 찍는 방식을 mathGiveUp 2차배열을 만들어서 저장하였다.수포자 3명의 방식을 돌면서 각각 해당하는 답들이 맞는 확인하여 맞은 개수를 저장하고, 그 중 많이 맞춘 개수(max)를 기억한다.max랑 맞춘 개수가 같은 수포자를 list에 담고 반환한
총 카펫의 수를 구한다.1부터 카펫의 수까지 반복문을 돌면서 row(세로길이), col(가로길이) 에 대해서 구한다.(row-2) \* (col-2) 값이 yellow인 값을 리턴한다.(갈색 카펫이 노란색 카펫을 둘러싸고 있어야 하므로 row와 col에서 2를 뺀값이
문제링크String을 한개씩 쪼개어 char 배열로 만든다.DFS를 통하여 모든 경우의 수를 구한다.경우의 수들을 소수인지 판단하여 Set에 집어 넣는다. (동일한 숫자가 나올 수 있기 때문에 Set을 이용했다)DFS가 끝나면 Set의 크기를 반환한다.
문제링크DFS 백트래킹 방식으로 접근하였다,DFS를 돌면서 count를 세가면서 최대값을 max에 저장하였다.DFS가 끝났을 때 max를 반환한다.
문제링크인접리스트로 그래프을 만든다.해당 wire 연결 끊는다.BFS 돌면서 개수를 구한 뒤 두 전력망 개수 차이를 저장한다.연결 끊었던 wire 다시 연결한다.2번부터 4번을 wires 크기만큼 반복한다.두 전력망 개수 차이 최솟값을 반환한다.
문제링크DFS를 통하여 순서에 따라 중복이 허용된 모든 경우의 수를 list에 담는다.해당하는 word에 해당하는 list의 index를 구하고 반환한다.
제한사항의 5번의 경우를 먼저 처리한다.여벌있는 번호의 앞뒤 번호가 잃어버렸는지 확인한다.
해당 문자가 A로부터 오른쪽이 길지 왼쪽으로 길지 판단한다.순서대로 가는 것과, 뒤로 돌아가는 것 비교 후 작은 쪽 선택처음부터 뒷부분을 먼저 입력하는 것이 더 빠른 경우까지 고려한다.
stack에 첫번 째 숫자를 넣는다.다음에 넣을 숫자가 stack 제일 위에 있는 숫자보다 크고 cnt가 k보다 작고 stack가 비지 않을 경우 cnt += 1과 pop()을 반복한다.stack에 다음에 넣을 숫자를 넣는다.cnt가 k를 안하고 끝나는 경우가 있어서
문제링크오름차순정렬을 한다.투포인터를 사용하였다. 작은 값들을 변경하면서 구한다.
문제링크크루스칼 알고리즘으로 Union & Find를 사용하였다.같은 부모일 경우 continue를 통해서 Union을 하지않는다.\-> Union을 할 경우 사이클이 생기므로 안된다.https://velog.io/@qodlstjd12/%ED%94%84%EB%
링크텍스트끝나는 시간 기준으로 오름차순 정렬을 한다.std를 Integer 최솟값을 지정해준다.routes 조회하면서 시작지점이 std보다 클 경우 카메라 개수 +1 해주고 시작지점을 std로 지정한다.
문제링크DFS을 통해 +, -, /, \* 를 통해 해당 값을 찾았을 때 cnt의 최솟값을 구한다.만약 처음 최솟값으로 설정한 Integer.MAX_VALUE라면 -1 리턴
문제링크위 모양처럼 생각하면 쉽게 접근할 수 있다.1\. 자신의 위에 있는 숫자와 왼쪽대각선의 숫자를 비교한 뒤 더 큰 숫자와 자신을 더하고 저장한다.2\. 마지막 행까지 1번을 반복한다.3\. 마지막 행을 반복할 때 Math.max를 이용하여 최댓값을 구한다.
문제링크구덩이를 -1로 먼저 표시를 해준다.(1,1)부터 (n,m) 까지 돌면서 웅덩이일 경우 표시했던 웅덩이를 0으로 바꿔주고 continue해준다.첫행이 아닐 때와 첫열이 아닐 때 그전까지 왔던 수를 저장한다.mapn을 리턴한다.
문제링크업로드중..두가지 경우를 나뉜다.1\. 첫번 째 집을 도둑질 할 경우2\. 첫번 째 집을 도둑질 안하고, 두번 째 집부터 도둑질 할 경우3\. 시작점을 정하고, index 2부터 주어진 money의 길이만큼 반복하면서 index-1과 index-2 + money
문제링크DFS를 이용하였다.DFS를 돌면서 깊이가 주어진 numbers의 길이 일때 종료 조건을 넣는다.종료조건이 만족할 때 sum이 target과 같으면 answer +1를 해준다.sum에 해당 숫자를 더한 값 DFS, 뺀 값 DFS를 돌린다.
문제링크4칸으로 지워지는 블록을 이차원 boolean 배열(check)에 체크해준다.(바로 적용안하는 이유는 : 겹치는 부분도 있기 때문에 모든 경우를 구해야한다.)check배열에서 true이면 map에 '.'으로 바꿔준다. (지우는 단계)2-1. '.'으로 바꿔주면서
문제링크A~Z를 String 형태로 list에 저장한다.주어진 msg를 index 0부터 빈 스트링(s)에 붙히면서 list에 있는지 확인한다.2-1 list에 존재하면 history에 s를 저장한다.2-2 list에 없으면 history의 index 번호는 ans에