블로그 최신 글
-
프로그래머스 숫자 짝꿍 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; 숫자 차례대..
최근 인기글
-
순열, 조합, 중복순열, 중복조합을 만드는 방법
순열, 조합, 중복순열, 중복조합을 만들 수 있는 여러가지 방법을 설명하겠다 마지막에는 한가지 방법으로 순열, 조합, 중복순열, 중복조합을 모두 만들 수 있는 방법을 알려주겠다 사용할 배열에는 1 2 3이 저장되어 있는 상태이다 이 배열을 이용하여 3개 중에서 2개를 뽑는 순열, 조합, 중복순열, 중복조합을 생성해보겠다 순열을 만드는 방법 1. 반복을 이용한 순열 가장 쉽게 만들 수 있는 순열이다 2~3개를 뽑는 경우에는 간단하게 사용할 수 있지만 뽑는 수가 많아지면 코드가 더러워(?)진다 static int[] arr = {1, 2, 3}; public static void per() { for (int i = 0; i < 3; i++) { for (int j = 0; j n) 함수를 종료시킨다 sta..
-
퀄컴 동시에 두 개의 지문인식 가능한 초음파 센서
퀄컴(Qualcomm)은 디스플레이에 내장된 초음파 지문인식 센서 3D Sonic Max 2세대를 발표했다. 지문인식 범위가 기존보다 17배나 커졌기 때문에, 한 번에 두 개의 지문을 읽을 수 있으며, 기존 3D Sonic Max의 문제점을 해결할 수 있을 것으로 보인다. 기존 1세대 3D Sonic Max 지문 인식의 경우 신뢰성과 보안성에 초점을 두었으며, 삼성전자 갤럭시 S10에 탑재해 첫 선을 보였었다. 하지만, 센서의 크기가 작아 지문을 부정확하게 판독하는 문제, 느린 속도, 보안 이슈 등의 문제를 겪었다. 1세대의 센서 크기는 4mm * 9mm였지만, 2세대의 센서 크기는 20mm * 30mm으로 17배나 커졌으며, 1세대 센서의 문제들을 쉽게 해결할 수 있다. 크기가 커진 2세대 센서는 지문..
-
삼성 공중에 화면을 띄우는 기술
삼성은 2018년 미국 특허청(USPTO)에 영상장치를 포함한 전자장치에 대한 특허를 출원했으며, 2019년 9월 19일에 데이터베이스가 공개되었다. 삼성은 2D 사진을 3D 입체 영상이나 에리어 이미지(aerial image)*로 변환할 수 있는 기술을 개발했으며, 이 기술을 도킹 스테이션으로 구현할 수 있게 했다. 스마트폰에 도킹 스테이션을 장착하면, 스마트폰 화면에 표시되는 이미지를 공중으로 투사할 수 있다. 특허 설명에 따르면, 공중으로 투사된 투영 품질은 스마트폰 화면으로 보는 품질과 동일할 것이라고 한다. 이 도킹 스테이션은 움직임을 감지할 수 있는 터치 패널을 제공하기 때문에 공중에서 투사된 화면을 제어할 수 있다. 즉, 스마트폰을 터치하지 않아도 공중에서 음악을 조절하거나 메시지를 보내는 ..