전체 글

Algorithm/알고리즘 개념

[알고리즘] 삽입 정렬(insertion sort)

삽입 정렬이란? 삽입 정렬: 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘 매 순서마다 해당 원소를 삽입할 수 있는 위치를 찾아 해당 위치에 삽입한다. key값은 2번째 인덱스부터 시작되며, key값이 자료의 길이만큼 이동했을 때 정렬된다. 1) 정렬되지 않은 배열에서 2번째 인덱스를 key값으로 잡는다. 2) 앞의 인덱스와 비교하여 교환한다. 3) 2번째를 key값으로 잡았기 때문에 다음, 3번째 인덱스를 key값으로 잡는다. 4) 마찬가지로 앞의 인덱스들과 비교하여 교환한다. 시간복잡도 최선의 경우 O(n) 시간복잡도를 가지게 되지만, 최악의 경우 O(n^2)이 될 수 있다. JAVA CODE public cl..

Algorithm/알고리즘 개념

[알고리즘] 버블 정렬(bubble sort)

버블 정렬이란? 버블 정렬(거품 정렬): 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하여 정렬하는 알고리즘이다. 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어진 이름이다. 이를 양방향으로 번갈아 수행하면 칵테일 정렬이 된다. 1) 그림과 같이 정렬되지 않은 배열이 있다고 가정하자. 2) 맨 앞부터 비교를 하게 된다. 그럼 7과 2를 비교하게 되는데, 7이 더 크기 때문에 두 수를 바꾼다. * 버블 정렬을 동그라미 표시(거품)를 하며 바꾼다는 의미로 외웠음 3) 2와 7을 바꾼 뒤 한 칸 앞으로 가서 다시 7과 0을 비교한다. 4) 마찬가지로 7이 더 크기 때문에 두 원소를 교환한다. 이런 식으로 제일 큰 수 부터 정렬하는 방법이 bubble sort ..

CodeStates

[SEB BE 44] Section 3 회고록

코드스테이츠 백엔드 과정 Section 3 후기 일어나.. 코딩해야지.. KPT를 기반으로한 개인 회고 목표 상기하기 Keep, Problem 작성하기 Try 작성하기 우선순위 정하기 KPT가 무엇인지는 이쪽 블로깅 참고~ https://memodayoungee.tistory.com/112 [SEB BE 44] Section 2 회고록 코드스테이츠 백엔드 과정 Section 2 후기 ??: section2부터는 열심히 할거야! 1시간 후 ?? : 드르렁 ~ 선천적으로 잠이 드럽게 많은 나. 오후에 몰아치는 잠을 버틸 수 없었다.. 낮잠 잘 시간에 스프링 memodayoungee.tistory.com Section3 KPT Keep 7시 이후부터 꾸준히 개인공부하기 section1때부터 유지하고 있는 사항..

Algorithm/PTUStudy

14주차. 문자열 분석

10820. 문자열 분석 https://www.acmicpc.net/problem/10820 10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net 📌풀이 136ms, 14396kb import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOEx..

Algorithm/PTUStudy

14주차. 알파벳 찾기

10809. 알파벳 찾기 https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 📌풀이 저번주와 비슷한 문제. 152ms, 16296kb import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[]..

Algorithm/PTUStudy

14주차. 그래프(섬의 개수)

32. 섬의 개수 https://leetcode.com/problems/top-k-frequent-elements/ Top K Frequent Elements - LeetCode Can you solve this real interview question? Top K Frequent Elements - Given an integer array nums and an integer k, return the k most frequent elements. You may return the answer in any order. Example 1: Input: nums = [1,1,1,2,2,3], k = 2 Output: [1,2] leetcode.com 📌문제 1을 육지로 0을 물로 가정한 2D 그리드 맵이 주..

Spring/개념

[Spring] Spring 기초 및 모듈 구성, Sprig VS SpringBoot

OOP Study 에서 Spring Study로 방향성을 변경한 후, 처음으로 발표한 내용이다. Spring의 기초에는 스프링의 핵심기술인 IoC/DI, AOP, PSA 내용을 빼먹을 수 없겠지만, 다음 챕터에서 정리할 내용이기에 스프링 모듈쪽을 중심으로 정리했다. Spring의 기초 Spring의 모듈 구성 Spring Core Container 스프링 프레임워크 의존성 주입 IoC(Inversion of Control) 컨테이너 및 애플리케이션 컨텍스트 핵심 기능을 제공한다. 모듈 설명 spring-core - 스프링 모듈이 사용하는 핵심 유틸리티 - 프레임 워크의 기반을 제공 spring-beans - BeanFactory 인터페이스를 통한 구현을 포함 - 의존성 주입을 제공함 - Spring Be..

Algorithm/PTUStudy

13주차. 알파벳 개수

10808. 알파벳 개수 https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 📌문제 - 예제1 📝입력 baekjoon 💻출력 1 1 0 0 1 0 0 0 0 1 1 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 📌풀이 소문자 'a'가 아스키코드로 97이라는 사실만 알면 쉽게 풀 수 있음 148ms 16008kb public class 알파벳개수 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new Inp..

Algorithm/PTUStudy

13주차. 후위표기식

1935. 후위표기식2 https://www.acmicpc.net/problem/1918 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 📌문제 - 예제1 📝입력 A*(B+C) 💻출력 ABC+* 📌풀이 1. +,- 연산이 기준이 됐을 때, stack에 *,/ 연산이 있다면 이 연산부터 pop해야한다.(우선순위가 있다는 의미) 2. 여는 괄호가 들어오면 닫는 괄호가 나오기 전 연산들을 pop해야한다. 이 내용을 토대로 주석처리한대로 처음이 코드를 짜다가 stakc의 top 비교하는 부분의 우선순위가 ..

Algorithm/PTUStudy

13주차. 해시 테이블(상위 K 빈도 요소)

31. 상위 K 빈도 요소 https://leetcode.com/problems/top-k-frequent-elements/ Top K Frequent Elements - LeetCode Can you solve this real interview question? Top K Frequent Elements - Given an integer array nums and an integer k, return the k most frequent elements. You may return the answer in any order. Example 1: Input: nums = [1,1,1,2,2,3], k = 2 Output: [1,2] leetcode.com 📌문제 K번 이상 등장하는 요소를 추출하라(라고 ..

지구우중
개발 메모용 블로그