no image
백트래킹 - 15649 N과 M (1)
백트래킹 : 현재 가능한 상태에서 모든 후보군을 따라 들어가며 탐색하는 알고리즘. 코드#include void fn(int x);int n, m;int arr[8] = {};int isused[9] = {}; /* 1~8의 숫자가 들어갈 거라서, isused[8]로 만들어버리면 isused[0]~isused[7]이 만들어지기 때문에 isused[i]=1을 설정할 때 i가 8이면 값이 들어가지 못함.*/int main() { scanf_s("%d %d", &n, &m); fn(0);}void fn(int x) { if (x == m) { for (int i = 0; i  실수가 있었던 부분에 주석을 달아놨다. 참고한 블로그 [..
2025.01.11
no image
도전!12 - 서비스에서 수신자로 메시지 보내기
도전11과 비슷하다. 액티비티에 글자 입력 -> 서비스로 데이터 전송 -> 서비스에서 브로드캐스트 수신자로 데이터 전송 -> 액티비티에 글자 출력 activity_main.xml은 동일하다. 1. MainActivity.javapackage com.example.doitmission12;public class MainActivity extends AppCompatActivity { EditText inputText; TextView outputText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R...
2025.01.10
no image
도전!11 - 서비스 실행하고 화면에 보여주기
그렇게 어렵진 않았다. 전에 했던 거 그대로 따라함. 6장 - 서비스백그라운드 : 화면 뒤의 공간서비스 : 백그라운드에서 실행되는 앱의 구성 요소 (앱의 구성요소이기 때문에 시스템에서 관리됨.)서비스는 비정상적으로 종료되더라도 시스템이 자동으로 재실행sand-to-desert.tistory.com  1. activity_main.xml  2. MainActivity.javapackage com.example.doitmission_11;public class MainActivity extends AppCompatActivity { EditText inputText; TextView outputText; @Override protected void onCreate(Bundle saved..
2025.01.10
no image
리소스&매니패스트&그래들 이해하기
안드로이드 앱은 크게 자바 코드와 리소스(res; resource)로 구성된다. 두 개로 나누면 이해하기 쉽고 유지관리가 용이하다. 매니패스트 : 앱이 실행되기 전에 시스템이 알아야 할 내용들을 정의한다.더보기[ 매니패스트 파일에 들어갈 수 있는 태그 항목 ]이 중 , , , 와 같은 태그들은 앱 구성요소를 등록하기 위해 사용됨.리소스의 사용리소스가 갱신되면 그 때마다 리소스의 정보가 R.java 파일에 자동으로 기록되며, 그 정보는 리소스에 대한 내부적인 포인터 정보가 된다. res 폴더와 assets 폴더의 차이점애셋 : 용량이 큰 데이터를 의미함(ex. 동영상, 웹페이지). 빌드되지 않음.리소스 : 빌드되어 설치파일에 추가됨. res/values 폴더 : 문자열이나 기타 기본 데이터 타입에 해당하는..
2025.01.09
no image
6장 - 위험 권한 부여하기
마시멜로(API23)부터 권한이 2가지로 분류됨.일반 권한 : 앱을 설치할 때 부여됨.위험 권한 : 앱 실행 시 사용자에게 권한을 부여할 지 물어보고 부여됨. (ex. 위치, 카메라, 마이크, 연락처, 전화, 문자, 일정, 센서 등)더보기위험권한의 종류LOCATION(위치) : ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATIONCAMERA : CAMERAMICROPHONE : RECORD_AUDIOCONTACTS : READ_CONTACTS, WRITE_CONTACTS, GET_ACCOUNTSPHONE : READ_PHONE_STATE, CALL_PHONE, READ_CALL_LOG, WRITE_CALL_LOG, USE_SIP, ADD_VOICEMAIL, PROCESS_OUT..
2025.01.08
no image
6장 - 브로드캐스트 수신자 (SMS 문자 정보 액티비티에 띄우기)
브로드캐스팅(Broadcasting) : 메시지를 여러 객체에 전달글로벌 이벤트(Global Event) : 메시지를 브로드캐스팅으로 전달하는 방식 (ex. 전화, 문자에 대한 사용자 알림 메시지) 브로드캐스팅 메시지를 받고 싶으면 브로드캐스트 수신자를 만들어 앱에 등록한다. (registerReceiver(), onReceive())다른 앱의 메시지를 전달받을 수 있음.이 중 원하는 메시지만 받으려면 인텐트 필터를 사용하여 시스템에 등록하면 된다. 브로드캐스트 수신자의 특징 : 앱을 실행하지 않은 상태에서도 인텐트 안에 들어있는 메시지를 받아볼 수 있다. 브로드캐스트 수신자를 포함하고 있는 메인 액티비티가 적어도 한번 실행되어야 브로드캐스트 수신자가 메시지를 받을 수 있다. 브로드캐스트를 등록하는 방법..
2025.01.07
no image
duplicate class 에러 (JDK7, JDK8 충돌)
아 진짜 엿같았던 에러.. 아직도 뭐 때문에 문제가 발생했는지 정확하게는 잘 모르겠으나권한요청을 구현하기 위해 새로운 라이브러리를 implement해서 발생한 듯. 어떻게 해결했는지 그 과정. 사실 6,7번만 봐도 해결이 될거임. (아마?)(7번만 해도 해결이 되는지 아니면 위에 과정들 중 필요한 과정이 있던 건지는 아직 잘 모르겠음. 나중에 또 이런 문제가 발생했을 때 7번부터 해보고 안되면 위의 과정들 하나하나 해봅시다..) 1. 1/3 문제 발생. Duplicate class found라는 에러가 떴다. 대충 class X가 모듈 A랑 B에 둘 다 존재한다 이런 느낌이었음. 2. 라이브러리가 충돌했다는 것을 깨닫고 직접 라이브러리에 들어가서 충돌하는 내용을 지워주려고 했음. (ㅋㅋ..)(projec..
2025.01.05
no image
15720 : 카우버거 (함수에 매개변수로 포인터 넣기)
문제는 뭐.. 별건 없음. 걍 메뉴 총합이랑, 세트메뉴 시 할인되는 총합 두개 출력하는 거임. 걍 내가 착각하고 있던 게 하나 있어서 적어둠.void putarray(int a, int small, int arr[], int *sum, int *disum) { for (int i = 0; i 이건 내가 만든 함수임. 내가 착각하고 있던 게 뭐냐면 int나 double과 같이 하나의 그런.. 값을 매개변수로 어떤 함수에 주고, 함수에서 그 값을 바꿔도 main 함수에선 바뀌지 않음. 그러므로 배열도 그럴 것이다. 이렇게 생각함. 함수에 배열을 매개변수로 넣을 시 -> main 함수에 있는 배열도 바뀜.정수나 실수는 포인터로 넣어주면 됨.putarray(a, small, arr, &sum, &disum);이..
2025.01.04
no image
6장 - 서비스
백그라운드 : 화면 뒤의 공간서비스 : 백그라운드에서 실행되는 앱의 구성 요소 (앱의 구성요소이기 때문에 시스템에서 관리됨.)서비스는 비정상적으로 종료되더라도 시스템이 자동으로 재실행한다. (실행된 상태를 계속 유지하기 위함.)ex) 카카오톡 메시지는 앱이 실행되어 있지 않더라도 발신되어야 한다. startService() : 서비스를 실행하는 메서드. 이 메서드 호출 시 인텐트 객체를 파라미터로 전달한다.서비스를 시작하거나, 인텐트를 전달하는 목적으로 사용된다.(ex. 액티비티->서비스 데이터 전달 : 인텐트 객체를 만들고 거기에 부가 데이터를 넣은 뒤 startService() 호출) onStartCommand() : 전달된 인텐트 객체를 처리하는 메서드.서비스가 startService()에 의해 메..
2025.01.02