Home
동준이 블로그
Cancel

[알고리즘] 가장 긴 팰린드롬 부분 문자열

문제 가장 긴 팰린드롬 부분 문자열을 출력하라 입력 "babad" "cbbd" 출력 "bab" "bb" 풀이 (중앙을 중심으로 확장하는 풀이) 팰린드롬을 판별하기 위해, 포인터가 이동하면서 만약 포인터의 문자가 같을 때 중앙을 중심으로 점점 확장해 나가면서 가장 긴 팰린드롬을 찾을 수 있다. 방법을 자세히 설명하자면, 크기...

[알고리즘] 로그 파일 재정렬

문제 로그를 재정렬하라. 기준은 다음과 같다. 로그의 가장 앞부분은 식별자다. 문자로 구성된 로그가 숫자 로그보다 앞에 온다. 식별자는 순서에 영향을 끼치지 않지만, 문자가 동일할 경우 식별자 순으로 한다. 숫자 로그는 입력 순서대로 한다. 입력 logs = ["dig1 8 1 5 1", "let1 art can", "dig2...

[알고리즘] 유효한 팰린드롬

문제 주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며. 영문자와 숫자만을 대상으로 한다. 입력 "A man, a plan, a canal: Panama" 출력 true 팰린드롬(Palindrome)이란? 앞뒤가 똑같은 단어나 문장으로, 뒤집어도 같은 말이 되는 단어 또는 문장을 팰린드롬(Palindrome)이라고 ...

[JPA] 영속성 컨텍스트

엔티티 매니저 팩토리와 엔티티 매니저 엔티티 매니저 팩토리는 이름 그대로 엔티티 매니저를 만드는 공장이고, 엔티티 매니저는 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 등 엔티티와 관련된 모든일을 처리하는 엔티티를 관리하는 관리자이다. 영속성 컨텍스트란? 영속성 컨텍스트(Persistence Context)는 논리적인 개념으로 엔티...

[자바의정석] 예외처리

프로그램 오류 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우가 있다. 이러한 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 이를 발생 시점에 따라 컴파일 에러와 런타임 에러로 나뉜다. 컴파일 에러 : 컴파일 할 때 발생하는 에러 런타임 에러 : 실행 시 발생하는 에러 논리적 에러 : ...

[프로젝트] 캡스톤디자인 후기

이번 우리조의 캡스톤 디자인 주제는 대학생들을 위한 워크스페이스로, 시중에 나와있는 Notion을 모티브로 하여, 조금 더 대학생들의 편리성에 맞게 웹서비스를 만들기로 하였다. 우리팀은 총 4명으로 프론트 2명과 백앤드 2명으로 구성하고 프론트는 리액트, 백엔드는 스프링 프레임워크를 사용하였다. 기술 스택 우리 백엔드 팀은 프론트와 백엔드간의 ...

[자바의 정석] 인터페이스

인터페이스란? 인터페이스는 일종의 추상클래스다. 인터페이스는 추상클래스처럼 추상메서드를 갖지만, 추상클래스보다 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 추상클래스를 부분적으로만 완성된 미완성 설계도면, 인터페이스는 구현된것은 아무것도 없고 밑그림만 그려져 있는 기본설계도...

[자바의 정석] 추상클래스

추상클래스란? 클래스를 설계도에 비유한다면, 추상클래스는 미완성 설계도에 비유할 수 있다. 즉, 미완성 메서드(추상메서드)를 포함하고 있는 클래스라는 의미이다. abstract class 클래스이름{} 추상메서드(abstract method) 메서드의 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨 둔 것이 추상메서드이다. 즉, 설계...

[데이터베이스] 트랜잭션

트랜잭션(Transaction)이란? 하나의 논리적인 작업 단위를 구성하는 연산들의 집합을 트랜잭션(Transcation)이라 한다. 즉, 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위이다. 예를 들어 A계좌에서 B계좌로 일정 금액을 이체한다고 했을 때의 순서를 보자 A는 A계좌의 잔액을 확인하고 현재 금액에서 인출할 금액을...

[알고리즘] 복잡도

복잡도 복잡도는 알고리즘의 성능을 나타내는 척도다. 복잡도는 시간복잡도와 공간복잡도로 나눌 수 있다. 시간복잡도 시간 복잡도란 알고리즘을 위해 필요한 연산의 횟수를 말한다. 시간 복잡도라고 해서 프로그램이 실행되는 시간을 나타내는 것 같지만, 주요로직의 반복횟수에 중점으로 측정된다. 예를 들어 아래의 코드가 실행되는 시간을 측정해보자. s...