본문 바로가기

전체 글110

[Algorithm] Chapter01 연습문제 Q12 ~ Q17 Q12 오른쪽과 같이 위쪽과 왼쪽에 곱하는 수가 있는 곱셈표를 출력하는 프로그램을 작성하시오. (구분선은 수직선 기호(|), 마이너스기호(-), 플러스 기호(+)를 사용하세요.) public class chap_01_q12_gugudan_chart { private static final int [] gugudan = {1, 2, 3, 4, 5, 6, 7, 8, 9}; public static void main(String[] args) { System.out.print("\t| "); for (int k : gugudan) { System.out.printf("%2d ", k); } System.out.println("\n----+---------------------------"); for (int .. 2021. 3. 30.
[Algorithm] 논리합, 논리곱, 드모르간 법칙 1. 논리곱 (&&) x y x && y true true true true false false false true false false false false 2. 논리합 (||) x y x || y true true true true false true false true true false false false 3. 드모르간 법칙 '각 조건을 부정하고 논리곱을 논리합으로, 논리합을 논리곱으로 바꾸고 다시 전체를 부정하면 원래의 조건과 같다.' ex) x && y == !(!x || !y) x || y == !(!x && !y) (x 99) == !(x >= 10 && x x는 10미만 100 이상이다. 2021. 3. 30.
[Algorithm] Chapter01 연습문제 Q4 ~ Q5 p22 Q4 세 값의 대소 관계 13종류의 모든 조합에 대해 중앙값을 구하여 출력하는 프로그램을 작성하세요. 내 답안 import java.util.Arrays; import java.util.Random; public class chap_01_q4_med3 { public static void main(String[] args) { int arr[] = new int[7]; int repeat = 1; for(int i = 0; i < arr.length; i++){ if(i != 0 && i % (arr.length-1) == 0) { System.out.println("배열은 " + Arrays.toString(arr) + "이며"); System.out.println("중간 값은 " + med(arr) .. 2021. 3. 27.
[Algorithm] 프로그래머스 가장 큰 수(2) - Kotlin 이전 글 프로그래머스 가장 큰 수(1) - Kotlin 프로그래머스의 정렬 문제 중 Level 2문제인 가장 큰 수에 대해 정리해보려 한다. 코딩 테스트 연습 - 가장 큰 수 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 junyoeng.tistory.com 이번 포스팅에선 다른 분들이 만든 성공 케이스를 두 가지 정도 뽑아서 정리해보려 한다. 먼저 첫 번째로 sortedWith()를 이용해 숫자를 문자열로 앞 뒤로 교차해서 비교한 뒤 정리하고 정리가 끝난 후에 forEach()를 통해 인덱스 순서대로 하나 씩 더해서 문자열을 완성시키는 방식으로 해결하고 있다. 0이 반복적으로 나오는 경우를 처리하기 위해 '0'으로 시작하는 문자열이 있으면 "0.. 2021. 3. 27.
[Algorithm] Chapter01 연습문제 Q1 ~ Q3 Q1 네 값의 최대값을 구하는 max4 메서드를 작성하세요. static int max4(int a, int b, int c, int d) 내 답안 import java.util.Scanner; public class chap_01_q1_max4 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("숫자 4개를 입력해주세요"); int a = scanner.nextInt(); int b = scanner.nextInt(); int c = scanner.nextInt(); int d = scanner.nextInt(); System.out.println("최댓값은 " + m.. 2021. 3. 27.
[Algorithm] 스택 (Stack) - Kotlin 이번 포스팅에서는 스택(Stack)에 대해 정리해보고 직접 구현해보려 한다. 스택은 기본적으로 선형구조로 이루어져 있으며 LIFO(Last In First Out) 맨 마지막에 들어간 데이터를 가장 먼저 출력하는 방식의 구조를 갖고 있다. 기본적인 용어는 push(데이터를 넣는 함수), pop(데이터를 꺼낼 함수) top(데이터를 넣을 위치와 꺼낼 위치)가 있다. 스택을 구현할 때, push를 통해 데이터를 넣고 top의 값을 수정해주며 pop을 통해 데이터를 꺼내고 top의 위치를 수정하는 방식으로 구현하면 된다. Stack.kt import java.util.* class Stack(private val size: Int) { private val stackArray = Array(size){ _ -.. 2021. 3. 20.
[Algorithm] 큐 (Queue) - Kotlin 이번 포스팅에서는 큐(Queue)에 대해 정리해보고 큐의 종류 중 원형 큐를 직접 구현해보려 한다. 큐는 컴퓨터의 자료 구조의 한 가지로, FIFO(First In First Out) 구조로 저장하는 형식을 말한다. 쉽게 말하면 배열에서 값을 빼낼 때, 가장 먼저 들어온 값을 우선적으로 뺀다고 생각하면 된다. 큐에서 기본적인 용어로는 put 또는 insert (값을 넣는 함수), get 또는 delete(값을 꺼내는 함수)를 의미하며 front의 경우는 데이터를 get 할 수 있는 위치를 뜻하며 rear의 경우 데이터를 배열에 넣을 위치를 뜻한다. 원형 큐란? 일반적인 선형 큐는 일반적으로 크기가 제한되어 있으며 만약 빈 공간을 사용하여 제한 사항을 보완하려는 경우 모든 자료를 꺼내거나 자료를 한 칸씩 .. 2021. 3. 20.
[Android] 구글 인앱 결제 개인 프로젝트를 진행하면서 식권 구매 페이지에 결제 시스템을 넣어야 해서 전에 한번 해본 적이 있는 구글 인 앱 결제로 진행하였고 블로그에 결제 관련 로직을 정리해보려 한다. 일단 구글 인 앱 결제를 이용하기 위해선 google play console에서 개발자 계정을 만든 뒤 앱을 업로드하는 게 필요하다. 나 같은 경우는 알파 버전에 앱을 올리고 인앱 상품을 만들어 테스트 한 뒤 프로덕션으로 올리는 방식으로 진행하였다. 아무튼 이 과정은 생략하고 코드 쪽에 대한 설명으로 포스팅하려 한다. 먼저 BillingHelper.kt을 구현할 것이다. 이 파일은 인앱 결제를 위한 클라이언트 객체를 만들어주기 위한 클래스다. import android.content.Context import com.android... 2021. 3. 20.
[Open Source] compareTo() 정리(Int) - Kotlin (2) 이전 글 compareTo() 정리(String, Int) - Kotlin (1) 예전부터 뭔가를 정렬할 때, 가장 많이 썼던 함수 중 하나가 compareTo()였다. 하지만 이 함수를 쓰면서도 정확하게 어떤 식으로 반환되는지 Int형일 경우와 String형일 경우 차이가 무엇인지 등 정확 junyoeng.tistory.com 이전 글에서 compareTo()의 String을 주로 정리를 해봤다면 이번에는 Int형을 기준으로 정리해보려 한다. Int형을 compareTo() 함수를 통해 비교하며 정리한 건 아래와 같다. Int형의 반환 값은 1, 0 , -1 총 3가지만 존재한다. 기준 값이 비교 값보다 더 클 경우 1을 반환하고 기준 값과 비교 값이 같은 경우 0을 반환하며 기준 값보다 비교 값이 더.. 2021. 3. 12.