- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 연결리스트
- 프로그래머스
- sql
- C언어
- 로그인
- 컴퓨터공학과
- 알고리즘
- 배열
- 코딩테스트
- 백준
- til
- 안드로이드
- oauth
- 파이썬
- python
- Java
- android studio
- 동적할당
- firebase google
- 프로그래밍 입문
- 정렬
- Firebase
- 자바
- 안드로이드 스튜디오
- C++
- 비주얼 베이직
- 공유대학
- 구글 로그인
- 자료구조
목록개인 공부 (150)
코딩하는 해달이
1. 삽입 정렬이란?삽입 정렬(Insertion Sort)은 간단하고 직관적인 정렬 알고리즘입니다. 이 알고리즘은 데이터가 거의 정렬된 상태일 때 매우 효율적이며, 작은 데이터셋을 정렬할 때 유용합니다. 삽입 정렬은 리스트를 순차적으로 탐색하면서 정렬된 부분과 정렬되지 않은 부분으로 나누고, 정렬되지 않은 부분의 요소를 하나씩 꺼내어 적절한 위치에 삽입하여 정렬된 부분을 확장해 나갑니다. 이러한 방식 덕분에 데이터의 안정성을 유지할 수 있는 안정 정렬(stable sort)입니다.2. 삽입 정렬 과정3. 작업 순서리스트의 첫 번째 요소는 이미 정렬된 것으로 간주합니다.두 번째 요소부터 시작하여 리스트의 끝까지 순회합니다.현재 요소를 이전의 정렬된 요소들과 비교하여 알맞은 위치를 찾습니다.요소를 해당 위치..
선택 정렬이란?선택 정렬은 제자리 정렬(In- place sorting) 알고리즘의 하나로 원소를 넣을 위치는 이미 정해져있으며, 어떤 원소를 넣을지 선택하는 알고리즘입니다.선택 정렬 과정작업 순서리스트를 순회하며 가장 작은 요소 찾기가장 작은 요소와 첫 번째 요소 교환리스트의 다음 위치로 이동반복시간 복잡도최악, 평균, 최선 모든 경우에 O(n^2)의 시간 복잡도를 가집니다.공간 복잡도O(1): 제자리 정렬 알고리즘으로 추가적인 메모리 사용이 거의 없습니다.장점구현이 간단하고 이해하기 쉽습니다.단점시간 복잡도가 O(n^2)이기 때문에, 데이터의 크기가 큰 경우 비효율적입니다.코드 public void selectionSort(int[] array) { int n = array.leng..
버블 정렬이란?버블 정렬은 무작위로 배치되어있는 요소들을 일정한 기준에 맞추어 정렬하는데 그 방법이 인접한 두 요소를 비교하여 의도한 순서가 될 때까지 교체하는 알고리즘입니다.버블 정렬 과정작업 순서첫 번째 인덱스부터 시작해서 두 요소를 비교한다.첫 번째 요소가 두 번째 요소보다 크면 서로 교체한다.이제 두 번째 요소와 세 번째 요소를 비교하여 교체가 필요한 경우 교체한다.마지막 요소까지 반복한다.시간 복잡도사이클을 돌 때마다 n, n-1, n-2, .... , 2, 1번 실행되게 되므로 시간 복잡도는 O(n^2)이다.코드이를 코드로 나타내면 다음과 같다.public void bubbleSort(int[] array) { int n = array.length; // 배열의 모든 ..
1. 개요Android Studio를 사용해서 애플리케이션을 개발하고 배포할 경우에 흔히 발생 할 수 있는 com.google.android.gms .common.api.ApiException: 10 오류를 해결한 케이스에 대해 다뤄보려합니다.2.트러블 슈팅2.1 배경 (아키텍처 다이어그램) 2.2 발단개발 환경은 안드로이드 스튜디오에서 아래의 라이브러리를 사용해 구현한 구글 로그인 기능이 개발 환경에서 실행할 경우에는 잘 작동이 되지만 google play console에 번들을 통해 테스트를 올리면 로그인이 안되는 오류가 발생했습니다.play-services-auth:21.0.0com.google.gms:google-services:4.4.1androidx.credentials:credentials:..
RESTful API란?두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스이다.API란?애플리케이션 프로그래밍 인터페이스(API)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의한다. 개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성한다. 따라서 웹 API는 클라이언트와 웹 리소스 사이의 게이트웨이라고 생각할 수 있다.클라이언트클라이언트는 웹에서 정보에 액세스하려는 사용자이다. 클라이언트는 API를 사용하는 사람 뿐아니라 소프트웨어 시스템일 수도 있다.리소스리소스는 다양한 애플리케이션이 클라이언트에게 제공하는 정보이다. 리소스는 이미지, 동영상, 텍스트, 숫자 또는 모든 유형의 데이터 일 수 있다. ..
GradleJava나 Groovy, Kotlin등 여러 유형의 소프트웨어를 빌드할 수 있는 오픈 소스 빌드 자동화 도구이다. Gradle은 빌드하려는 대상이나 방법을 거의 고정하지 않아 유연하다.Gradle이 자동화 할 수 있는 작업들Compile - Java 파일의 소스코드를 컴퓨터가 이해할 수 있도록 바이트 코드로 변환Test - 유닛 테스트, UI 테스트Packaging - 스프링 코드를 패키징 해 .jar 파일이나, .war 파일로 생성Deploy & Run - 서버 실행용어 정리프로젝트 - Gradle이 빌드하는 것, 프로젝트에는 빌드 스크립트가 포함되며 해당 프로젝트에 대한 태스크, 의존성, 플러그인 및 기타 구성을 정의한다.태스크 - 코드 컴파일, 테스트 실행 또는 배포와 같은 특정 작업을 ..
문제 설명바로 어제 최백준 조교가 방 열쇠를 주머니에 넣은 채 깜빡하고 서울로 가 버리는 황당한 상황에 직면한 조교들은, 702호에 새로운 보안 시스템을 설치하기로 하였다. 이 보안 시스템은 열쇠가 아닌 암호로 동작하게 되어 있는 시스템이다.암호는 서로 다른 L개의 알파벳 소문자들로 구성되며 최소 한 개의 모음(a, e, i, o, u)과 최소 두 개의 자음으로 구성되어 있다고 알려져 있다. 또한 정렬된 문자열을 선호하는 조교들의 성향으로 미루어 보아 암호를 이루는 알파벳이 암호에서 증가하는 순서로 배열되었을 것이라고 추측된다. 즉, abc는 가능성이 있는 암호이지만 bac는 그렇지 않다.새 보안 시스템에서 조교들이 암호로 사용했을 법한 문자의 종류는 C가지가 있다고 한다. 이 알파벳을 입수한 민식, 영..
MVC Pattern디자인 패턴 중 하나인 MVC 패턴은 하나의 프로젝트, 애플리케이션을 구성할 때, 그 구성요소를 Model, View, Controller 세 가지로 구분한 패턴이다.Model모델은 애플리케이션의 핵심 데이터와 비즈니스 로직을 나타낸다. 데이터 저장소와의 상호작용, 데이터 처리 및 유효성 검사와 같은 작업을 수행한다. 모델은 독립적으로 작동하며, 뷰와 컨트롤러와 직접적으로 통신하지 않는다.특징사용자가 편집하길 원하는 모든 데이터를 갖고 있어야 함.뷰나 컨트롤러에 대해 어떤 정보도 알아서는 안됨.변경이 일어나면, 변경 통지에 대한 처리방법을 구현해야 함.View뷰는 체크박스, 텍스트 박스 등과 같은 사용자 인터페이스를 나타낸다. 따라서 데이터 및 객체의 입력과 출력을 담당한다.특징모델이..