본문 바로가기

분류 전체보기

(38)
[백준 15649] N과 M (1) - JAVA 문제 링크 : https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 1. 백트래킹(Backtracking) 영단어 그대로 해석해서 '역추적'으로 이해해도 됩니다. 백트래킹(Backtracking)이란 유망성이 존재하는 노드들에 대해서 알고리즘을 적용하는 기법으로, 만일 유망성이 존재하지 않는다면 부모 노드로 돌아가 다른 자식 노드를 찾는 방법입니다. 따라서 재귀(Recursion )로 구현할 수 있습니다. 모든 경우의 수를 탐색하는 브루트포스(Br..
[백준 1269] 대칭 차집합 - JAVA 1. 문제 해석 문제에 따르면 A 집합과 B 집합이 다음과 같은 형태로 존재할 때 이들의 대칭 차집합은 아래와 같습니다. 위와 같은 형태로 집합을 구하고, 그 집합의 원소의 개수를 구하면 되는 간단한 문제입니다. Bit-string으로 표현되는 Set을 이용하기로 했습니다. Set을 Bit-string으로 표현하면 전체 집합의 크기가 N일 때, 각 집합을 N bit로 표현하고, 원소가 집합에 포함되어 있으면 해당 bit를 1로, 그렇지 않으면 0으로 표현하게 됩니다. 예를 들어서 10bit로 집합 A = {1, 3, 5, 7, 9}를 표현하면 아래와 같습니다. 어떤 원소가 집합 A에 속하는지 확인할 때는 value가 1인지 아닌지만 확인하면 되고 원소의 삽입과 삭제는 해당 bit를 1 또는 0으로 설정하..
[Android] Activity 수명 주기(LifeCycle) 사용자의 사용에 따라서 앱의 Activity 인스턴스는 수명 주기 안에서 서로 다른 상태를 통해 전환됩니다. 앱을 종료, 탐색, 새로운 Activity 생성 등의 상태가 이에 해당합니다. 유튜브 통해서 동영상을 시청하고 있는 사용자가 있습니다. 사용자는 홈버튼을 눌러 앱을 잠시 벗어나게 된다면 네트워크 연결을 종료하고 동영상 재생을 멈춥니다. 그리고 유튜브를 다시 실행하면 네트워크를 재연결해서 일시 정지된 부분부터 영상이 재생되도록 할 수 있습니다. 즉, 각각의 상태에서 취해야 하는 행동을 정의함으로써 앱의 안정성에 기여합니다. Activity 수명 주기(LifeCycle) 개념 활동 클래스는 원활한 Activity 전환을 위해서 onCreate(), onStart(), onResume(), onPaus..
[Android] Android studio Arctic Fox 버전 이후 build.gradle 수정하기 안드로이드 스튜디오를 올해 초에 다운로드 받아서 공부하기 시작했습니다. 공부를 하면서 추가 라이브러리가 필요한 경우가 많았고, 프로젝트 단위와 애플리케이션 단위의 build.gradle에 코드를 추가해야 했습니다. 이때 프로젝트 단위의 build.gradle에 아래와 같은 유형의 코드를 추가하면 오류가 발생하곤 했습니다. buildscript { repositories { google() // Google's Maven repository } dependencies { classpath 'com.google.gms:google-services:4.3.10' } } ... allprojects { repositories { google() mavenCentral() maven { url "https://j..
[Pascal] 학생 정보 관리(Student Info Manage) 학교 과제로 학생 정보를 관리해주는 Program을 만들었습니다. 노트북에만 내버려두기에 너무 아쉬워서 블로그에 남겨보려 합니다. :D 1. Program 요구사항 여러 학생의 과목별 점수를 입력하고, 이를 합산하여 Sorting 하는 Pascal program을 작성하라. 한 학생의 data는 학번, 이름, 과목별 성적(3개 이상)으로 하라. Quick sorting algorithm을 이용하라. Sub program을 두 개 이상 정의하여 작성하라. EOF, EOLN을 이용하여, 임의의 학생수 및 과목수에 대해 처리할 수 있도록 하라.(확장성이 좋도록 작성하라) 2. Program code 개요 1) Main program 사용자에게 보여줄 interface를 출력해주고, 사용자의 입력에 따라 각 기..
[Android] 홍드로이드 기초 강의 - 리사이클러뷰(RecyclerView) 1. 안드로이드 리사이클러뷰(RecyclerView) "수많은 데이터의 집합을 지정된 영역 내에서 유연하게(flexible) 표시되도록 만들어주는 위젯"입니다. 안드로이드 개발자 문서에 작성된 리사이클러뷰(RecyclerView)의 설명입니다. 이해를 돋기 위해 설명을 덧붙이자면, "사용자가 관리하는 데이터의 집합을 서로 다른 아이템으로 생성하고 리스트업 해서 한눈에 보이도록 합니다. 뿐만 아니라 스크롤 기능이 구비되어 있어 한 화면에 표시되기 어려운 양의 아이템들도 볼 수 있습니다." 이전에는 ListView 위젯으로 여러 아이템들을 표현해주었습니다. RecyclerView가 ListView의 기능을 이어받아 그 기능을 담당하는 것인데, "Recycle"이라는 용어가 붙은 것이 특이합니다. 이는 두 위..
[백준 1018번] 체스판 다시 칠하기 - Java 1. 문제 해석 흰색, 검은색의 정사각형들로 구성된 MxN 크기의 보드를 8x8 크기로 잘라서 체스판으로 활용하려고 합니다. 색 구별은 임의로 되어 있어서 보드를 자르고 난 뒤에는 체스판에 맞게 색을 덧칠한다고 합니다. 이때 색을 덧칠하는 횟수가 최소가 되는 보드 위치를 찾는 것이 요구사항입니다. 해당 문제에서 중요한 부분은 설명란의 2번째 구문입니다. 체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, (중략) 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. (중략) 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다. 이는 맨 왼쪽 위칸이 흰색인 경우(이하 'case_white')와 검은색인 경우(이하 'case_black') 모두 고려해서 알고리즘을 작..
[Android] 홍드로이드 기초 강의 - Camera 촬영 및 Image 가져오기_MainActivity 이전 Android 포스팅인 "[Android] 홍드로이드 기초 강의 - Camera 촬영 및 Image 가져오기_환경설정"에 이어서 MainActivity에 대해 작성하겠습니다. 1. 애플리케이션 동작 기본적인 동작은 간단합니다. 1) 사용자로부터 권한을 요청한다. 2) 촬영 버튼을 눌러 카메라를 실행한다. 3) 사진을 촬영하고, 앱 메인화면으로 가져온다. 1) 애플리케이션의 첫 화면인 MainActivity가 나타나면 권한이 허용되었는지 확인해야 합니다. 권한이 거부 상태이면 사용자에게 권한 요청 메시지가 보입니다. 2) 권한을 허용하면 앱 하단의 '촬영' 버튼을 이용해서 카메라를 사용할 수 있습니다. 3) 촬영한 이미지는 메인화면에 표시됩니다. 이때 어떻게 스마트폰을 들고 있느냐에 따라서 이미지가 ..