분류 전체보기 242

[토이플젝] 그랑블루 판타지 친구찾기 - 2일차

1. 캡챠 피하기 캡챠 뚫는법을 알았으면 내가 구글에 가있지 않았을까..? 하고 있었는데, SNS를 연동해서 로그인하는 방법이 존재한다는걸 알았다. 그렇게 시도해본 결과, SNS로 로그인하면 캡챠가 뜨지 않는다는걸 알아냈다. 2. 자동 로그인 바로 트위터 계정을 만들고, 로그인하는 코드를 만들어 테스트해보았다. 잘 로그인되는것을 확인했다. 이어서 그랑블루 연동을 시도해보았다. 로그인은 2단계로 나누어지는데, 1. ID/PW를 입력하고 로그인버튼을 누르는 과정(혹은 SNS 연동 로그인 버튼을 누르는 과정) 2. 적합한 로그인 시도였을 경우 로그인 성공 화면이 뜨는데, 여기서 "확인" 버튼까지 누르고 난 이후에야 로그인 처리가 성공적으로 끝난다. 따라서 모바게(그랑블루 서비스 회사) 로그인 페이지에서 트위터..

토이프로젝트 2021.05.01

[백준] 10775 - 공항

[문제링크] 10775번: 공항 예제 1 : [2][?][?][1] 형태로 도킹시킬 수 있다. 3번째 비행기는 도킹시킬 수 없다. 예제 2 : [1][2][3][?] 형태로 도킹 시킬 수 있고, 4번째 비행기는 절대 도킹 시킬 수 없어서 이후 추가적인 도킹은 불 www.acmicpc.net 0. 비행기가 1~n의 게이트 중 하나에 들어가야한다면, 가능한 게이트 중 가장 큰 게이트에 들어가야한다 (그리디) - 1~n이 가능한 비행기가 1번에 들어가버리면, 1~1밖에 안되는 비행기가 다음에 들어오면 즉시 종료된다 1. 비행기가 가능한 가장 큰 게이트에 들어가므로, 게이트들은 연속으로 차지되게 된다 - 1~n인 비행기만 5대 들어왔다면 n, n-1, n-2, n-3, n-4 게이트가 순서대로 사용될 것 2. ..

[백준] 1939 - 중량제한

[문제링크] 1939번: 중량제한 첫째 줄에 N, M(1≤M≤100,000)이 주어진다. 다음 M개의 줄에는 다리에 대한 정보를 나타내는 세 정수 A, B(1≤A, B≤N), C(1≤C≤1,000,000,000)가 주어진다. 이는 A번 섬과 B번 섬 사이에 중량제한이 C인 다리 www.acmicpc.net 0. 다익스트라나 프림에서 사용하는 방식을 사용했다. 1. 시작지점의 초기값은 MAX, 나머지 지점의 초기값은 0 2. 아직 가보지 못한 지점중, 가장 많은 짐을 지고 갈수있는 지점 X를 탐색한다 3. X로부터 갈수있는 지점들을, X를 거치는 경우 / 기존 최댓값을 비교해 갱신한다 4. 이를 n번 반복하면, n개의 노드 전체를 탐색한 것이다. 5. 종료된 후 end지점에 있는 값이 해당 지점에 들고갈 ..

[백준] 16562 - 친구비

[문제링크] 16562번: 친구비 첫 줄에 학생 수 N (1 ≤ N ≤ 10,000)과 친구관계 수 M (0 ≤ M ≤ 10,000), 가지고 있는 돈 k (1 ≤ k ≤ 10,000,000)가 주어진다. 두번째 줄에 N개의 각각의 학생이 원하는 친구비 Ai가 주어진다. ( www.acmicpc.net 0. disjoint set 문제 1. 기존에 존재하는 학생들의 관계를 따라 set들을 합친다 2. 학생들을 친구비에 따라 정렬한다 3. 친구비가 낮은 순서로 친구맺기를 시도한다. - 해당 학생이 속한 집합의 root를 구해 이미 친구인 집합인지, 아닌지 판단한다 4. 모든 집단과 친구가 된 후, 금액이 k보다 크다면 실패 import java.io.BufferedReader; import java.io...

[백준] 3055 - 탈출

[문제링크] 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net 0. 물이 찰 예정인 칸으로 진행할 수 없다 -> 물을 먼저 채우고 고슴도치를 이동시키면 된다 - 고슴도치는 변수로 적절하지 않으니 대신 뜨또를 변수로 사용하였다. 1. 물 한번 - 고슴도치 한번 번갈아가며 빈 칸을 채우는 BFS 실행 - ans가 갱신된 그 순간이 곧 최소시간이므로 즉시 탈출한다 - 끝까지 갱신되지 못했다면 정해진 문자열 출력 import java.io.BufferedReader; import java.io.InputStreamReader; i..

[백준] 4195 - 친구 네트워크

[문제링크] 4195번: 친구 네트워크 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스의 첫째 줄에는 친구 관계의 수 F가 주어지며, 이 값은 100,000을 넘지 않는다. 다음 F개의 줄에는 친구 관계가 생긴 순서대로 주어진 www.acmicpc.net 0. disjoint set 문제 1. parents 배열 외에도, popul배열을 둬서 배열의 인구수를 관리한다. 2. popul배열은 서로 다른 set의 merge시에만, 흡수되는 쪽의 인구를 반대쪽에 누적시킴으로서 계산된다. 3. 문자열로 들어오는 사람 이름을 처리하기 위해, HashMap에 index와 함께 저장하였다. 4. 새로운 입력마다 두 사람의 set의 merge시도를 하며, 같은 집합일 경우 현재 인구를, - 다른 집합일 ..

[백준] 1976 - 여행 가자

[문제링크] 1976번: 여행 가자 동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인 www.acmicpc.net 0. 1717번 문제처럼 disjoint set의 이용 (2021.04.28 - [백준/골드] - [백준] 1717 - 집합의 표현) 1. 모든 연결된 x,y쌍에 대해 그 집합을 합쳐준다 2. 모든 방문할 node들에 대해 같은 집합에 속하는지 확인한다 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class..

[백준] 1717 - 집합의 표현

[문제링크] 1717번: 집합의 표현 첫째 줄에 n(1 ≤ n ≤ 1,000,000), m(1 ≤ m ≤ 100,000)이 주어진다. m은 입력으로 주어지는 연산의 개수이다. 다음 m개의 줄에는 각각의 연산이 주어진다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 www.acmicpc.net 0. parents[i] : i번째 노드 부모 노드를 가리킨다 1. init함수 : 자기 자신을 부모로 설정, 즉 원소 1개짜리의 집합을 n+1개 생성한다 2. getRoot함수 : 자기 자신이 부모일때까지 부모를 따라간다. 즉, 해당 원소가 속한 집합의 root를 구한다 3. mergeGroup함수 : 양 집합의 부모를 구해서, 한쪽의 부모를 상대방으로 변경한다 4. isSameGroup : 양 집합의 부모..

[백준] 9252 - LCS 2

[문제링크] 9252번: LCS 2 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net 0. 기본 LCS 알고리즘 : 문자열 A와 B의 끝 문자가 x로 같다면, LCS의 길이는 A'와 B'의 LCS + 1 이다 - 여기서 A', B'이란 맨 끝문자를 제외한 A, B - A = A'+x, B = B'+x - A와 B의 끝 문자가 x,y로 다르다면, LCS의 길이는 A'와 B의 LCS, A와 B'의 LCS 둘 중 큰 쪽이다 - A = A'+x, B = B'+y 1. 위 과정을 DP로 계산하면..