본문 바로가기

전체 글79

[Kotlin] getSharedPreferences 해쉬맵 사용하기 getSharedPreferences 의 사용방법은 https://developer.android.com/training/data-storage/shared-preferences?hl=ko 를 참조하길 바란다 HashMap을 JSON 객체로 변환해주는 GSON 라이브러리 사용 GSON 라이브러리를 사용하기 위해 build.gradle파일에 의존성을 추가한다. implementation 'com.google.code.gson:gson:2.9.0' 사용자 정보를 HASHMAP을 이용하여 저장하는 함수 fun saveData(name:String,bloodType:String,emergencynumber:String,birthdate:String,warnning:String){ val userInfoMap =.. 2023. 8. 28.
백준 2942번[c언어] : 퍼거슨과 사과 https://www.acmicpc.net/problem/2942 2942번: 퍼거슨과 사과 맨체스터 유나이티드의 감독 퍼거슨은 빨간 사과를 R개, 초록 사과를 G개 가지고 있다. 훈련장에 있는 선수들 중 몇 명에게 나누어 주려고 한다. 단, 선수들이 서로 같은 개수의 사과를 받지 못하 www.acmicpc.net 풀이 색깔이 다른 사과를 같은 개수대로 받아야 하며 사과의 개수는 남지않아야 한다. 사과가 남지 않게 나누어주려면 (약수) 명에게 나누워줘야 사과의 개수가 남지 않는다 약수 중 가장 큰 수는 최대공약수로 앞서 최대공약수를 구하는 함수 문제를 풀었다. 최대공약수를 구해 for(int i=1부터 최대공약수 까지) 진행하며 n%i==0이라면 사과의 개수는 나누어 떨어지지 않게된다. 선수들에게 나누워.. 2022. 5. 4.
백준 9012번[c언어] : 괄호 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 풀이 스택 문제에 있어서 스택을 써서 사용해야 하나 싶지만 구지 스택을 사용하지 않고도 풀 수 있다. c언어로 스택을 구현하기엔 너무 코드가 길기 때문에 스택을 쓰고싶다면 c++의 stack라이브러리를 사용하도록 하자 스택의 개념으로 먼저 다가가면 '(' 를 push로 생각하고 ')'을 pop으로 생각할 수 있다. 완변한 괄호가 되려면 스택의 상태는 0이 되어야한다... 2022. 5. 3.
백준 9009번[c/c++] : 피보나치 https://www.acmicpc.net/problem/9009 9009번: 피보나치 입력 데이터는 표준입력을 사용한다. 입력은 T 개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 테스트 데이터의 수를 나타내는 정수 T 가 주어진다. 각 테스트 데이터에는 하나의 정수 n www.acmicpc.net 풀이 재귀적 풀이 fibo함수에 입력한 값을 넘겨준다 넘어온 값이 1이라면 계산할 필요없가 없으므로 1을 출력한다 만약 입력한 값이 피보나치 수라면 입력한 값을 그대로 출력한다. 입력한 값이 피보나치 수가 아니라면 입력한 값보다 작은 피보나치 수를 구한다(입력한 수보다는 작지만 피보나치 수열중에서는 가장 큰 값) = max_fibo에서 return 해준다. 이 값을 max라고하자. 입력한 값-max가.. 2022. 5. 2.
백준 17103번[c언어] : 골드바흐 파티션 https://www.acmicpc.net/problem/17103 17103번: 골드바흐 파티션 첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 N은 짝수이고, 2 < N ≤ 1,000,000을 만족한다. www.acmicpc.net 2022.03.21 - [백준] - 백준 9020번 [c언어] : 골드바흐의 추측 백준 9020번 [c언어] : 골드바흐의 추측 https://www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 dongkyung.tistory.c.. 2022. 5. 1.
백준 1850번[c/c++] : 최대공약수 https://www.acmicpc.net/problem/1850 1850번: 최대공약수 모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오. 예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A www.acmicpc.net 풀이 풀이에 앞서 프로그래밍에서 최대공약수를 구하는 함수를 알아보자(gcd 알고리즘) int gcd(long a, long b) { if (b == 0) return a; else return gcd(b, a % b); } 예시로 gcd(8,24)를 생각해보자. b가 0이 아니기 때문에 재귀함수 gcd(24,8)이 호출된다. gcd(24,8)도 b가 0이 아니기 때문에 재귀함.. 2022. 4. 30.
백준 2872번[c/c++] : 우리집엔 도서관이 있어 https://www.acmicpc.net/problem/2872 2872번: 우리집엔 도서관이 있어 상근이는 컴퓨터 공학의 일인자가 되기 위해 책을 매우 많이 구매했다. 하지만, 집에 책장이 없어서 책을 탑처럼 쌓아놓고 있다. 오늘은 오랜만에 상근이가 집에서 휴식을 취하는 날이다. 상근 www.acmicpc.net 풀이 첫째 줄에 책의 개수 N을 입력한다. 예시를 보면 제일 큰 숫자 4는 -> 3과 4로 정렬이 되어있다. 즉 2를 위로 옮기고 1을 옮기면 된다 (총 두번) 3, 2 ,4, 5, 1을 생각해보자. 3과 4와 5는 이미 3,4,5 순으로 정렬이 되어 있다. 그러므로 2를 맨 위로 옮기고 그 다음 1을 맨 위로 옮기면 된다. 총 두번을 옮기면 된다. 여기서 공식을 알 수 있다. 이미 정렬되어.. 2022. 4. 29.
백준 15903번[c++] : 카드 합체 놀이 https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 풀이 첫 번째 줄에 카드의 수, 합체의 수를 입력받는다 두 번째 줄에 카드의 값을 나타내는 값들을 입력받는다. 값들을 vector에 넣는다. 최솟값을 구해야하기 때문에 가장 작은 것 두개를 더하면 된다. sort함수를 통해 정렬을 하면 배열의 0번과 1번에 가장 작은 두 값이 오게 된다. 두 값을 더한뒤 0번 배열과 1번 배열에 더한값을 덮어 씌운다. 배열의 .. 2022. 4. 28.
백준 11399번[c언어] : ATM https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 풀이 첫째 줄에 사람 수 입력받는다. 배열크기가 1000인people[1001]선언하기 사람 수만큼 시간의 값을 입력받는다 가장 최솟값을 가지게 하려면 배열이 오름차순으로 정렬되어야한다. 배열을 정렬해아 하기 때문에 정렬기법을 사용한다. 정렬의 기법을 매우 여러개지만 그 중 하나인 삽입 정렬 알고리즘을 사용하였다. 배열을 정렬한 후 이중 반복문을 통해 값을 더해나간다. #include //삽입정렬 함수 void insertio.. 2022. 4. 27.