분류 전체보기
-
[Dev-Ping9] 백준 15649번 - N과 M (2) (Java) [DFS]코딩테스트/백준 2021. 12. 18. 17:17
# 문제설명 N과 M(1) 과 같은 dfs 문제이다. (1)번 문제와는 다르게 오름차순을 만족해야 한다. 마찬가지로 노드들에 대한 탐색을 진행하면서 조건에 맞는 노드들만 탐색한다. ** if 문의 or 절은 앞의 조건이 참일 시, 뒤의 조건을 검사하지않는다. (idx-1 이 OutOfArrayIndex Exception을 발생시키지 않음.) # 코드구현 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main{ static boolean[] picked; static int[] space; static S..
-
[Dev-Ping9] 백준 15649번 - N과 M (1) (Java)[DFS]코딩테스트/백준 2021. 12. 18. 17:09
# 문제설명 dfs 문제이다. 모든노드를 탐색하면서 조건에 도달할 시 출력해주면 된다. *StringBuilder 와 Sysout 의 성능차이는 어마어마하다. # 코드 구현 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main{ static boolean[] picked; static int[] space; static StringBuilder sb = new StringBuilder(); static void dfs(int idx, int nodeEnd,int limit){ if(idx == limi..
-
[Dev-Ping9] 백준 1436번 - 영화감독 숌 (Java)코딩테스트/백준 2021. 12. 18. 15:41
# 문제 설명 1666, ... , 5666, 6660, 6661 등의 변칙규칙으로 구현하기 귀찮게 정의되어 있기에, 이게 되나 하고 단순하게 짰다. 주어진 N의 크기도 작고, 시간제한도 2초(2억번 연산가능)로 넉넉한 편이기에 대충 통과 될거 같긴 했지만... 정말로 되네.... 이런거 공들여서 규칙찾기도 시간낭비 같아서 그냥 그대로 마무리했다. # 코드 구현 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new..
-
[Dev-Ping9] 백준 1018번 - 체스판 다시 칠하기 (Java)코딩테스트/백준 2021. 12. 18. 12:08
# 문제 설명 N과 M이 50보다 작으며, 시간제한은 2초라 그냥 손에 잡히는대로 풀면 풀리는 문제 # 수행시간 단순 무식하게 접근 했을 때, 8X8 의 비교연산을 (N-7)X(M-7) 번 한다. (그냥 구현만 제대로하면 된다는 뜻) 허나 N과 M의 범위가 커질때를 대비하여 더 나은 성능에 대한 고민을 해보았다. [1X8 블록]을 만들어 옮기면서 비교하면, 추가되는 원소에 대한 비교만 해주면 되기때문에 비교연산이 1X(N-7)X(M-7) 로 줄어드나 Big-O 표기법으로 봤을 때 아무 의미 없을 것이다. 그래서 아무 걱정없이 문제가 시키는대로 구현하기로 했다. # 코드구현 백준(맞힌사람)에서 Java 11 로 검색해서 높은순위에 공개된 코드에는 나처럼 board를 만들지 않는다... boolean 변수 ..
-
[Network] Apachi, Nginx, Tomcat 이 하는일이 뭘까? (Feat. Proxy)Network Basis 2021. 12. 15. 09:37
# 대충 개념 잡기 Apachi, NginX 은 프록시서버(웹서버)이며 Tomcat, Jetty, Undertow 는 WAS다. (WAS : Web Application Server , 자바진영 용어) 용어차이기 때문에 복잡하게 생각하지말고 Spring+Tomcat / Node.js 등으로 만든 서비스를 Application Apachi, NginX 등은 Application 앞단에서 일을 처리하는 웹서버(관리자, 스케줄러)라 생각하면 된다. 그래서 Apachi와 NginX는 관리자의 역할에 맞게 Application 들이 각자의 서비스를 잘 수행할 수 있게 관리하는 법들을 고민한다. Tomcat 은 Spring 프로그램(Application)의 관리자(컨테이너) 정도로 생각하면 된다. (Applicat..
-
[Dev-Ping9] 백준 7568번 - 덩치 (Java)코딩테스트/백준 2021. 12. 14. 11:56
# 문제 설명 덩치 등수를 구하기 위해서는 한 사람이 그 외에 모든 사람과 비교를 해야 하므로, 그저 문제를 잘 이해하고, 그에 따른 구현능력이 필요한 문제인 것 같다. # 코드 구현 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main{ static int[][] human; static void printArr(int[][] arr){ for(int i=0;iq){ return true; } else if(p>x && q>y){ return false; } return true; } public s..
-
[Dev-Ping9] 백준 2231번 - 분해합 (Java)코딩테스트/백준 2021. 12. 14. 10:56
헐... 21등 했어요... 🥺🥺🥺 # 문제설명 [Base Description] 생성자가 여러개 있을 수 있음 -> 모든 경우를 탐색해야 한다 -> 그 중에 가장 작은수를 찾아야함 [N의 최대 값인 1백만으로 가정] >> 찾아지는 생성자(m)은 상당히 큰 수 일 것이 자명 >> 0에서 N까지 탐색하는 방법은 상당히 비효율적 >> 일정범위 이하로는 탐색할 필요가 없을 것이 자명 [어디까지를 탐색범위로 제한할 것인가?] >> N = m + sub(m) >> sub(m) 은 아무리 크더라도, N의 자릿수갯수 * 9 이하 >> sub(m) 을 최대값으로 가정했을때 만족하는 m 이하로는 탐색할 필요가 없음 (반대로 말하면, 해당 m보다 큰값만 탐색하면 됨) # 코드구현 import java.io.Buffered..
-
[Network] HTTPS는 무엇인가? HTTPS의 데이터를 주고받는 방식Network Basis 2021. 12. 10. 21:19
# HTTPS 의 2가지 보안개념 1. Request의 Data를 암호화하여 Server에 보낸다. (비대칭키와 대칭키 방식 혼용) 2. 검증기관(CA)으로 부터 검증된 사이트만 주소에 HTTPS 사용이 허가되어, 피싱사이트로 Reqeust를 보내는 경우를 방지한다. # 검증기관 (Certificate Authority, CA) 각 브라우저들은 CA 회사들의 목록을 가지고 있음 CA가 검증한 인증서는 CA의 개인키로 암호화 되어있다. # HTTPS 의 데이터 송수신 방법 * [Client -> Server] 를 CS , [Server -> Client] 를 SC 로 표기하겠음 >> Handshake (탐색전) 1. 사이트 접속시, 브라우저에서 사이트로 랜덤문자열을 전송 (CS) 2. 사이트에서 브라우저로..