블로그 최신 글
-
프로그래머스 숫자 짝꿍 with 자바
https://school.programmers.co.kr/learn/courses/30/lessons/131128 풀이 X와 Y가 가지고 있는 숫자들 중에서 중복된 숫자들만 찾으면 된다 우선 X를 한 글자씩 돌면서, 해당 숫자를 카운트 해준다 int[] count = new int[10]; // X가 가지고 있는 숫자 담을 배열 // X의 숫자 카운트 for (int i = 0; i < X.length(); i++) { char c = X.charAt(i); int n = c - '0'; count[n]++; } 그 후, Y를 한 글자씩 돌면서, 해당 숫자를 X가 가지고 있는지 확인하고 X가 가지고 있다면, 카운트에서 값을 하나 빼준다 이러면 X와 Y가 중복으로 가지고 있는 숫자임을 찾은 셈이므로 중복..
-
백준 1541 잃어버린 괄호 with 자바
https://www.acmicpc.net/problem/1541 풀이 먼저 "-"를 기준으로 문자열을 쪼개 준다 55-50+40의 경우 문자열을 쪼개면 55와 50+40으로 쪼갤 수 있으며 String 배열에 {"55", "50+40"}으로 담을 수 있다 이제, 배열의 0번 인덱스부터 뒤로 가면서 배열의 원소에 있는 수식을 계산하고, 계산한 결과를 빼주면 된다 0번 인덱스인 55에서 다음 원소인 50+40을 계산하고, 계산 결과인 90을 빼주면 된다 더하기만 있는 수식을 계산하는 함수이다 static int sumFormula(String s) { String[] ss = s.split("\\+"); int sum = 0; for (int i = 0; i < ss.length; i++) { sum +=..
-
백준 1043 거짓말 with 자바
https://www.acmicpc.net/problem/1043 풀이 먼저 각 파티에 있는 사람끼리 그래프로 연결하고 각 파티마다 진실을 알고 있는 사람이 있는 경우 해당 파티에 있는 나머지 사람들도 진실을 알고 있다고 상태를 변경한 다음 다시 한번 전체 파티를 돌면서 파티에 진실을 알고 있는 사람이 한 명이라도 있는 경우 전체 파티 개수에서 파티 개수를 빼주면 된다 전역 변수를 다음과 같이 선언해준다 static int N; static int M; static boolean[] visited; // 최종적으로 진실을 알고있는 사람 static Queue knowns; // 처음에 진실을 알고있는 사람 static Input[] inputs; // 받은 입력값 저장 (파티 정보) static Link..
-
백준 2636 치즈 with 자바
https://www.acmicpc.net/problem/2636 풀이 테두리(0,0)에서부터 2차원 배열을 치즈가 다 없어질 때까지 반복적으로 전체 탐색하면 된다 탐색할 때는 4방향 탐색을 하여 치즈가 있는 경우는 해당 위치를 기억하고 탐색이 다 끝나면 해당 위치의 치즈를 삭제해 주면 된다 전역 변수를 선언해 주고 static int N; static int M; static boolean[][] arr;// 2차원 배열 static int totalCount;// 전체 치즈 개수 static int[] di = {-1, 1, 0, 0};// 4방향 탐색에 쓰일 행 인덱스 static int[] dj = {0, 0, 1, -1};// 4방향 탐색에 쓰일 열 인덱스 static boolean[][] vi..
-
백준 5430 AC with 자바
https://www.acmicpc.net/problem/5430 풀이 더블리 링크드 리스트를 학습하기 아주 좋은 예제이다 진짜 그냥 더블리 링크드 리스트 구현해서 풀면 된다 링크드 리스트에 사용할 노드 클래스를 구현해주고 private static class Node { int n; Node pre; Node next; public Node(int n) { this.n = n; } } head와 tail을 선언하고 head와 tail 중 어떤 노드를 가리키는지 표시할 current와 아무것도 없는데 D를 한 경우를 확인하기 위한 에러 플래그를 선언해준다 static Node head; static Node tail; static Node current; static Boolean flag; 숫자 차례대..
최근 인기글
-
Direct Access Table과 Hash Table
다음과 같은 key-value쌍의 데이터를 저장하려고 한다 key-value쌍을 저장하는 기본적인 두 가지 방법에 대해 알아보자 Direct Access Table 배열의 인덱스로 바로 접근하는 방법이다 배열에서 인덱스를 순서가 아니라 key라고 생각하고 key-value쌍을 저장하는 방식이다 key를 바탕으로 배열의 인덱스에 데이터를 저장한다 '57'키는 배열의 57번 인덱스에 저장하고 '208'키는 배열의 208번 인덱스에 저장하고 '900'키는 배열의 900번 인덱스에 저장하면 된다 각 key에 해당하는 value를 알고 싶으면 해당 인덱스에 접근하면 된다 가장 큰 장점은 배열의 인덱스에 O(1)으로 바로 접근할 수 있다는 것이다 반면에 단점은 공간을 많이 낭비한다는 것이다 위의 예시를 보면 사용하..
-
삼성 공중에 화면을 띄우는 기술
삼성은 2018년 미국 특허청(USPTO)에 영상장치를 포함한 전자장치에 대한 특허를 출원했으며, 2019년 9월 19일에 데이터베이스가 공개되었다. 삼성은 2D 사진을 3D 입체 영상이나 에리어 이미지(aerial image)*로 변환할 수 있는 기술을 개발했으며, 이 기술을 도킹 스테이션으로 구현할 수 있게 했다. 스마트폰에 도킹 스테이션을 장착하면, 스마트폰 화면에 표시되는 이미지를 공중으로 투사할 수 있다. 특허 설명에 따르면, 공중으로 투사된 투영 품질은 스마트폰 화면으로 보는 품질과 동일할 것이라고 한다. 이 도킹 스테이션은 움직임을 감지할 수 있는 터치 패널을 제공하기 때문에 공중에서 투사된 화면을 제어할 수 있다. 즉, 스마트폰을 터치하지 않아도 공중에서 음악을 조절하거나 메시지를 보내는 ..
-
한성컴퓨터 ULTRON 3567UC 리얼후기
주로 모니터 앞에서 시간을 보낸다면, 좀 더 넓고 큰 모니터가 필요할지도 모른다. 이번에 리뷰할 제품 한성컴퓨터 ULTRON 3567UC 커브드 게이밍 리얼 200 은 무려 35인치(89cm)의 21:9 화면비를 지원하며 커브드 화면으로 더 넓은 영역을 제공한다. 명암비에 강점을 둔 A-MVA+패널을 상하좌우 선명한 화질로 볼 수 있는 광시야각을 가지고 있다. 덕분에 조도가 낮은 이미지에서도 편안하게 모니터를 이용할 수 있다. 게이밍 환경에도 최적화가 되어있다. 144Hz를 뛰어넘는 리얼 200Hz를 지원해 초고사율로 더 매끄럽고 섬세한 게임 플레이가 가능하다. 또한, AMD FreeSync를 지원해 화면 찢어짐, 끊김 현상 없이 부드러운 게임 플레이가 가능하다. 사용자의 편의를 위한 기능들도 있다. 사..