본문 바로가기

전체 글533

[안드로이드] AsyncTask AsyncTask | Android 개발자 | Android Developers developer.android.com AsyncTask 안드로이드에서 작업을 백그라운드 스레드에서 실행할 수 있게 해준다. UI 스레드와 동기화하여 업데이트를 보고하고, 프로세스 처리가 완료되면 다시 보고하는 패턴을 가지고 있다. 추상 클래스이므로 상속받는 서브 클래스를 생성해서 사용 API 30에서부턴 deprecated Generic Type AsyncTask 타입 이름 설명 Params - doInBackground 메서드에 입력 파라미터로 들어갈 값들의 type - 메인 스레드에서 execute() 메서드의 입력 파라미터 값 Progress - 백그라운드 작업 수행 도중 호출되는 onProgressUpdate 메서드.. 2020. 8. 22.
[알고리즘] 최대공약수, 최소공배수 구하기 import java.util.*; public class Main { public static void main(String[] args) { int a = 8; int b = 6; //최대공약수 (유클리드호제법) System.out.println("최대공약수 : "+gcd(a,b)); //최소공배수 = 0이 아닌 두 수의 곱 / 최대공약수 System.out.println("최소공배수 : "+ (a * b) / gcd(a,b)); } //최대공약수 public static int gcd(int a, int b) { //a에 큰 값 위치 시킴 if(a < b) { int temp = a; a = b; b = temp; } //유클리드 호제법 while(b != 0) { int n = a % b; a =.. 2020. 8. 22.
[알고리즘] 각 자리 수의 합 구하기 import java.util.*; public class Main { public static void main(String[] args) { int num = 1234567; int result = 0; //num : 1234567 -> 123456 -> 12345 -> 1234 -> 123 -> 12 -> 1 while(num >= 10) { result += num % 10; num /= 10; } result += num; System.out.println(result); } num을 10으로 나눈 나머지 값을 결과값에 더한다. num을 10으로 나눈 몫을 새로운 num으로 대입한다. 결과적으로 1의 자리 수 -> 10의 자리 수 -> 100의 자리 수 .... 순서대로 수를 더하게 된다. 2020. 8. 22.
[알고리즘] 문자열 → int 형 변환 import java.util.*; public class Main { public static void main(String[] args) { String str = "12345"; int num = 0; int multi = 1; for(int i = str.length()-1;i>=0;i--) { num += (str.charAt(i) - 48) * multi; multi *= 10; } System.out.println(num); } multi라는 값을 두어 1의 자리 -> 10의 자리 -> 100의 자리 순으로 숫자를 구할 수 있게 곱해준다. 각 수들을 차례대로 결과값에 더한다. 최종적으로 5 -> 45 -> 345 -> 2345 -> 12345로 결과값이 변해간다. 2020. 8. 22.