전체 글

· Algorithm
완전탐색이란? 완전탐색이란, 모든 경우의 수를 통한 해결 방법입니다. 기본적으로는 브루트 포스(Brute Force)라고도 합니다. 상대적으로 간단한 방법이지만 경우의 수가 많으면 많아질수록 시간이 오래 걸린다는 단점이 있습니다. 그래도 직관적이어서 이해하기 쉽고 문제의 정확한 결과값을 얻을 수 있는 기초적인 방법입니다. * 경우의 수에 따라서 실행 시간이 비례할 수 있기 때문에 입력 값의 범위가 작은 경우에 유용하게 사용됩니다. 완전탐색 기법 - 코딩 테스트 가능한 모든 경우의 수, 방법을 고려해야 합니다. 해결할 문제의 가능한 만큼 경우의 수를 계산해 봅니다. 실제로 답을 구할 수 있는지 적용해 봅니다. 완전탐색 종류 탐색 알고리즘에는 선형 탐색, 이진 탐색, 완전 탐색 총 3가지 큰 분류로 나눌 수..
배열(Array) 변수는 하나의 데이터만 저장할 수 있습니다. 그러나, 저장해야 할 데이터가 많아지면 그만큼 변수를 사용해야 합니다. 이를 해결하기 위해서 배열을 사용하면 많은 데이터를 손쉽게 처리할 수 있습니다. 배열(Array)은 메모리 상에 원소를 연속하게 배치한 자료구조입니다. 그리고 배열은 같은 탑의 변수를 담을 수 있는 고정 크기의 데이터 구조로, 메모리에 연속적으로 저장됩니다. 배열을 구성하는 각각의 값들을 배열 요소(element)라고 하며, 각 값이 저장되어 있는 위치를 인덱스(index)라고 합니다. 배열은 선언과 동시에 저장할 수 있는 타입이 결정되며, 만약에 다른 타입의 값을 저장하려고 하면 타입이 불일치하다는 컴파일 에러가 발생하게 됩니다. 그리고 배열을 한 번 생성하면 길이를 늘..
· Algorithm
복잡도는 알고리즘의 성능을 나타내는 지표로 시간 복잡도와 공간 복잡도로 나눌 수 있습니다. 즉, 시간 복잡도는 특정한 크기의 입력에 대하여 알고리즘이 얼마나 오래 걸리는지를 의미하고, 공간 복잡도는 특정한 크기의 입력에 대하여 알고리즘이 얼마나 많은 메모리를 차지하는지를 의미합니다. 동일한 기능을 수행하는 알고리즘이 있다면 일반적으로 복잡도가 낮을수록 좋은 알고리즘입니다. 복잡도를 측정함으로써 다음의 2가지를 계산할 수 있습니다. 시간 복잡도 : 알고리즘을 위해 필요한 연산의 횟수 공간 복잡도 : 알고리즘을 위해 필요한 메모리의 양 알고리즘이란, 어떤 목적을 해결하기 위한 일련의 과정을 의미합니다. 문제를 해결하는 알고리즘은 다양하며 여러 가지 상황에 따라 시간 복잡도가 가장 낮은 알고리즘을 선택해서 사..
· Backend CS
함수(Function)와 메서드(Method) 두 단어의 차이에 대해 정리한 글입니다. 우선, 함수와 메서드는 프로그래밍에서 기능 단위의 코드 블록입니다. 그러나, 일반적으로 함수와 메서드는 객체지향 프로그래밍과 절차지향 프로그래밍에 따라 약간의 차이가 있습니다. 함수(Function)란? 함수는 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합입니다. 함수는 절차지향 프로그래밍에서 사용되며, 데이터를 입력받아 처리하고 결과를 반환합니다. 함수는 프로그램의 구조화와 코드 재사용을 위해 사용되기 때문에 여러 곳에서 호출되어 사용이 가능합니다. 하나의 기능이 하나의 함수로 구현되어 있기 때문에 디버깅 작업이 편리해집니다. 메서드(Method)란? 메서드는 객체지향 프로그래밍에서 사용되..
Spring Security란? Spring Security는 Spring 기반 애플리케이션의 인증, 인가 및 보안을 담당하는 스프링 하위 프레임워크입니다. Spring Security는 인증(Authentication)과 권한(Authorization)에 대한 부분을 Filter 기반으로 동작하고 Spring MVC와 분리되어 관리 및 동작하며, 데이터 보호 기능을 포함하여 웹 개발 과정에서 필수적인 사용자 관리 기능을 구현하는데 도움을 줍니다. Spring Security 3.2부터는 XML을 설정하지 않고 Java Bean 설정으로 간단하게 설정할 수 있도록 지원해줍니다. Spring Security를 사용하는 이유 Spring Security를 사용하는 이유는 Spring의 생태계에서 보안에 필요..
🔥개인 취미 목적으로 프로그래머스 문제를 정리한 게시글입니다. https://school.programmers.co.kr/learn/courses/30/lessons/86051 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 문제설명 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 대, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *로 가린 문자열을 리턴하는 함수, solution을 완성해 주세요. 💡 제한사항 phone_number는 길이 4 ..
🔥개인 취미 목적으로 프로그래머스 문제를 정리한 게시글입니다. https://school.programmers.co.kr/learn/courses/30/lessons/86051 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 문제설명 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자는 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해 주세요. 💡 제한사항 1
· Backend CS
가장 기본인 참조형 객체 String에 대해 알아보려고 합니다. String 객체를 생성하는 데 방법은 두 가지가 있습니다. 첫 번째로 리터럴 방식("")으로 생성하는 것과 두 번째로 new 키워드로 생성하는 방법이 있습니다. 우선, 간단하게 String 객체를 저장하는 메모리 영역을 그림으로 보여드리겠습니다. 위 그림은 Java의 힙 메모리 영역입니다. 여기서 new 키워드로 String 객체를 생성하게 되면 Heap 영역에 메모리가 생성되고, 리터럴 방식으로 사용하게 된다면 Heap 영역의 내부에 있는 String constant pool 영역에 생성됩니다. String은 불변성을 지니고 있어 한번 저장된 값은 변하지 않습니다. 그러면 자바는 내부적으로 String 객체를 업데이트할 때 기존에 있는 ..
Error Message error : illegal start of type 번역 : 잘못된 유형 시작 Cause class Solution { public String solution(String[] seoul) { int i = 0; for (String s : seoul) { if (s.equals("Kim")) { break; } i++; } } return "김서방은 " + i + "에 있다"; } Illegal start of type 오류는 일반적으로 Java에서 발생하는 컴파일 타임 에러입니다. 다음과 같은 상황에서 발생합니다. 잘못된 선언 : 변수 또는 메서드의 선언이 잘못되었을 때 발생합니다. 스코프 문제 : 클래스, 메서드, 블록 내의 선언이 올바르게 이루어지지 않았을 때 발생합니다..
🔥개인 취미 목적으로 프로그래머스 문제를 정리한 게시글입니다. https://school.programmers.co.kr/learn/courses/30/lessons/12919 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 문제설명 String 배열 seoul의 element 중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. 💡 제한사항 seoul은 길이 1 이상 1,000 이하인 배열입니다. ..
규니95
Gyunny