분류 전체보기
-
[프로그래머스 Level 2] 소수찾기알고리즘 문제풀이/Java 2020. 4. 9. 23:46
문제 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. 013은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 예 numbers return 17 3 011 2 입출력 예 설명 예제 #1 [1, 7]으로는 소수 [7, 17, 71]를 만들 수 있습니다. 예제 #2 [0, 1, 1]으로는 소수 [11, 101]를 만들 ..
-
Encoding에 관한 고찰Web 2020. 4. 9. 20:19
과에서 듣는 강의 중 웹 크롤러를 제작하는 과제가 주어졌었다. 기존에 혼자서 진행한 프로젝트에서 이미 웹 크롤러를 제작해 보았기 때문에 그 방식을 그대로 따라하기로 했다. 진행한 프로젝트 : 중앙대학교 빈 강의실 https://campus.cau.ac.kr/usk/html/UskLec10.html (이 사이트에서 검색 조건을 전송하면, 나오는 페이지를 크롤링하기로 결정했다.) 하지만 이 강의에서 모든 과제는 파이썬으로 제작해야 하기 때문에 node.js로 만든 크롤러를, python으로 문법을 변환시키는 과정이 필요했다. python에서도 request 모듈이 존재하기 때문에, 쉽게 데이터를 얻어낼 수 있을 거라고 생각했었다. 하지만 그건 아니었다. 처음엔 어떤 데이터를 요청해도 해당하는 조건을 찾을 수..
-
백준 1063번 킹알고리즘 문제풀이/Java 2020. 4. 8. 16:17
문제 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 행을 상징한다. 열은 가장 왼쪽 열이 A이고, 가장 오른쪽 열이 H까지 이고, 행은 가장 아래가 1이고 가장 위가 8이다. 예를 들어, 왼쪽 아래 코너는 A1이고, 그 오른쪽 칸은 B1이다. 킹은 다음과 같이 움직일 수 있다. R : 한 칸 오른쪽으로 L : 한 칸 왼쪽으로 B : 한 칸 아래로 T : 한 칸 위로 RT : 오른쪽 위 대각선으로 LT : 왼쪽 위 대각선으로 RB : 오른쪽 아래 대각선으로 LB : 왼쪽 아래 대각선으로 체스판에는 돌이 하나 있는데, 돌과 같은 곳으로 이동할 때는, 돌을 킹이 움직..
-
백준 1158번 요세푸스 문제알고리즘 문제풀이/Java 2020. 4. 8. 00:50
문제 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) 출력 예제와 같이 요세푸스 순열을 출력한다. 예제 입력 1 복사 7 3 예제 출력 1 복사 해설 이 문제는 ..
-
문제풀이 노트알고리즘 문제풀이/Java 2020. 4. 7. 22:06
이 페이지는 문제를 풀면서 얻은 발상과 노하우, 실수들을 적는 곳입니다. 짝이 존재하는데, 그 둘의 관계가 순서에 상관없이 입력될 경우: 2차원 배열로 표현 이럴 땐 2차원 배열을 만들어 친구관계를 표현하는 게 편하다. ex) 친구 관계 - (0, 1) , (2, 1), (2, 3), (3, 0) 등 boolean[][] friends = {{F, T, F, T}, {T, F, T, F}, {F, T, F, T}, {T, F, T, F}}; 재귀 호출 문제인 경우, 기저 사례(재귀를 벗어나는 경우)를 먼저 작성하는 게 좋다. 뿐만 아니라 무슨 인자를 전달할 지도 중요하다. 재귀 호출 문제에 있어서, 제일 중요한 건, 전달할 인자가 무엇인가와 기저 사례 작성이다. 이 둘을 먼저 설정한다면, 나머지 문제의 ..
-
알고스팟 Boggle알고리즘 문제풀이/Java 2020. 4. 6. 23:48
문제 보글(Boggle) 게임은 그림 (a)와 같은 5x5 크기의 알파벳 격자인 게임판의 한 글자에서 시작해서 펜을 움직이면서 만나는 글자를 그 순서대로 나열하여 만들어지는 영어 단어를 찾아내는 게임입니다. 펜은 상하좌우, 혹은 대각선으로 인접한 칸으로 이동할 수 있으며 글자를 건너뛸 수는 없습니다. 지나간 글자를 다시 지나가는 것은 가능하지만, 펜을 이동하지않고 같은 글자를 여러번 쓸 수는 없습니다. 예를 들어 그림의 (b), (c), (d)는 각각 (a)의 격자에서 PRETTY, GIRL, REPEAT을 찾아낸 결과를 보여줍니다. 보글 게임판과 알고 있는 단어들의 목록이 주어질 때, 보글 게임판에서 각 단어를 찾을 수 있는지 여부를 출력하는 프로그램을 작성하세요. 주의: 알고리즘 문제 해결 전략 6장..
-
백준 1010번 다리 놓기알고리즘 문제풀이/Java 2020. 4. 6. 22:38
문제 재원이는 한 도시의 시장이 되었다. 이 도시에는 도시를 동쪽과 서쪽으로 나누는 큰 강이 흐르고 있다. 하지만 재원이는 다리가 없어서 시민들이 강을 건너는데 큰 불편을 겪고 있음을 알고 다리를 짓기로 결심하였다. 강 주변에서 다리를 짓기에 적합한 곳을 사이트라고 한다. 재원이는 강 주변을 면밀히 조사해 본 결과 강의 서쪽에는 N개의 사이트가 있고 동쪽에는 M개의 사이트가 있다는 것을 알았다. (N ≤ M) 재원이는 서쪽의 사이트와 동쪽의 사이트를 다리로 연결하려고 한다. (이때 한 사이트에는 최대 한 개의 다리만 연결될 수 있다.) 재원이는 다리를 최대한 많이 지으려고 하기 때문에 서쪽의 사이트 개수만큼 (N개) 다리를 지으려고 한다. 다리끼리는 서로 겹쳐질 수 없다고 할 때 다리를 지을 수 있는 경..
-
백준 1152번 단어의 개수알고리즘 문제풀이/Java 2020. 4. 5. 20:03
문제 영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. 출력 첫째 줄에 단어의 개수를 출력한다. 예제 입력 1 복사 The Curious Case of Benjamin Button 예제 출력 1 복사 6 예제 입력 2 복사 Mazatneunde Wae Teullyeoyo 예제 출력 2 복사 3 예제 입력 3 ..