본문 바로가기

분류 전체보기

(89)
개인정보 취급방침 제1조(개인정보의 처리목적) 가. 서비스 기본 기능의 제공 서비스 이용자간 메세지 송수신 서비스를 제공합니다. 이용자 상태정보, 닉네임, 성별, 나이, 지역, 사진은 이용자가 다른 이용자와의 소통과정에서 자신을 설명하기 위해 등록하는 정보로서 회원간에는 위 정보가 서로 공개됩니다. 나. 회원관리 회원제 서비스 이용 다른 기기식별, 약관위반회원(이용정지 회원)의 부정 이용방지와 비인가 사용방지, 가입의사 확인, 가입 및 가입횟수 제한, 분쟁 조정을 위한 기록보존, 불만처리 등 민원처리, 고지사항 전달 다. 서비스 통계에 활용 접속빈도 파악, 회원의 서비스이용에 대한 통계 개인정보의 공유 및 제공 회사는 이용자들의 개인정보를 "개인정보의 수집목적 및 이용목적"에서 고지한 범위내에서 사용하며, 이용자의 사전 ..
[JAVA]swing에서 CardLayout로 패널 바꾸기와 패널에서 패널로 데이터 전달하기 1. CardLayout cardLayout을 이용하여 원하는 패널을 불러오는 방법 1) frame부분 package main; import game.ChoicePanel; import game.GameImage; import game.GamePanel; import record.RecordPanel; import javax.swing.*; import java.awt.*; public class MainFrame extends JFrame { private MainPanel mainPanel; private ChoicePanel choicePanel; private RecordPanel recordPanel; private GamePanel gamePanel; private CardLayout card..
그래프 이론과 알고리즘 개념정리 1. 그래프의 개념 그래프(graph)는 원소 간의 관계를 표현하는 비선형 자료구조이다. 그래프는 객체를 나타내는 정점(vertex)와 객체를 연결하는 간선(edge)의 집합으로 구성된다. G=(V,E) 에서 G - 그래프 V - 정점의 집합 E - 정점을 연결하는 간선의 집합 2. 그래프의 종류 2.1 무방향 그래프 무방향 그래프(Undirected Graph)는 두 정점을 연결하는 간선에 방향이 없는 그래프이다. 2.2 방향 그래프 방향 그래프(Directed Graph)는 간선에 방향..0이 있는 그래프이다. 정점 V(i) 에서 정점V(j)를 연결하는 경우 V(i)를 꼬리(tail) 이라 하고 V(j)를 머리(head) 라고 한다. 2.3 완전 그래프 완전 그래프(Complete Graph)는 각 ..
비전공자를 위한 Arduino를 이용하여 android 폰으로 Iot 전등 제어하기2(Arduino편) https://pinlib.tistory.com/entry/zx 비전공자를 위한 Arduino를 이용하여 android 폰으로 Iot 전등 제어하기(android편)이번 android편은 크게 3Step으로 이루어져 있습니다. STEP 1. 세팅하기 우선 view binding을 사용하기 위해 build.gradle module 수준에서 kotlinOption 하단에 작성한다. 뷰 바인딩(view binding)이란 레이아웃 XML 파pinlib.tistory.com이전 글에 이어서 이번에는 아두이노 편을 작성해보겠습니다. 이번 arduino편은 크게 ~로 이루어져 있습니다. STEP 1. 세팅하기이렇게 해줍니다. 중요 포인트1. 보드 이름 ( esp8266 -> LOLIN(WeMos)D1 R1)2. U..
비전공자를 위한 Arduino를 이용하여 android 폰으로 Iot 전등 제어하기(android편) 이번 android편은 크게 3Step으로 이루어져 있습니다. STEP 1. 세팅하기 우선 view binding을 사용하기 위해 build.gradle module 수준에서 kotlinOption 하단에 작성한다. 뷰 바인딩(view binding)이란 레이아웃 XML 파일에 선언한 뷰 객체를 코드에서 쉽게 이용하는 방법으로 기존에 XML파일에 등록할 뷰를 이용하려면 findViewById().함수를 이용하여 호출해야 하는 번거로움을 해결하기 위해 사용하게 되었습니다. viewBinding{ enabled = true } 이후 아두이노와 안드로이드의 통신과 버전을 적합하게 하기위해 dependencies의 내용을 모두 지우고 하단의 내용으로 수정한다. implementation 'androidx.cor..
[백준][JAVA]구간 합 구하기4(11659번) - 누적합 https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 jwww.acmicpc.net* 문제는 해당 게시물 참고바랍니다. 해당 문제는 누적합을 구하는 문제입니다. 근데 그냥 풀면 시간 초과가 나옵니다.수 많은 시행 착오를 겪었습니다. 해당 문제를 해결한 코드에 대해 설명하겠습니다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.u..
[백준][JAVA]색종이 만들기(2630번) - 분할 정복 https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다.www.acmicpc.net* 문제는 해당 게시물 참고바랍니다. 분할 정복(Divide and Conquer)이란 재귀를 응용하는 알고리즘으로 여러 알고리즘의 기본이 되는 해결방법입니다.기본적으로는 엄청나게 크고 방대한 문제를 조금씩 조금씩 나눠가면서 용이하게 풀 수 있는 문제 단위로 나눈 다음 그것들을 다시 합쳐서 해결하자는 개념입니다. 분할 정복은 크게 3단계로 나눌 수 있습니다. 1. 원래 문제를..
[백준][JAVA]회의실배정(1931번) - 그리디 알고리즘 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.www.acmicpc.net* 문제는 해당 게시물 참고바랍니다. 그리디 알고리즘이란그리디 알고리즘은 흔히 탐욕 알고리즘이라고도 불리며 미래를 생각하지 않고 각 단계에서 가장 최선의 선택을 하는 기법입니다. 각 단계에서 한 선택이 최선의 선택을 한 것이길 바라고 전체적으로도 최선이길 바라는 알고리즘입니다. 해당 문제를 해결한 코드입니다.import java.util.*;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner..
[백준][JAVA]평범한 배낭(12865번) - 다이나믹 프로그래밍, 배낭 문제 https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000)www.acmicpc.net* 문제는 해당 게시물 참고바랍니다. 해당 문제는 동적 계획법 1에 분류되어 있으며알고리즘 분류로는 다이나믹 프로그래밍과 배낭 문제에 해당합니다.  다이나믹 프로그래밍이란 흔히 DP라고도 불립니다. 이는 최적화 이론의 한 기술으로,  특정 범위까지의 값을 구하기 위해서 하나의 큰 문제를 여러개의 작은 문제로 나누어 해당 문제들 값을 이용..
[백준][JAVA]스타트와 링크(14889번) - 백트래킹 algorithm 그리고 재귀의 이해 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net * 문제는 해당 게시물 참고바랍니다. 해당문제는 재귀와 백트래킹을 이용하여 동작을 구현하는 문제입니다. 백트래킹이란 해를 찾는 도중 아니다 싶으면 더 이상 깊이 들어가지 않고, 이전 단계로 돌아가 해를 찾아나가는 기법입니다. 모든 경우의 수를 탐색하는 브루트 포스 algorithm과는 다르게 문제를 최적화하여 비교적 빠르게 풀어나갈 수 있습니다. 요약하자면 브루트 포스 - 모든 가지에 다 가봄 백트래킹 - 가지치기를 ..