본문 바로가기

전체 글151

[JAVA] 문자열 압축 (kakao 2020) String 관련 문제를 해결하기 위해서는 Stringbuilder 를 쓰면 편하다는 글을 보고 시도해보았다. 내가 문제를 풀기 위해 공부했던 String 관련 도구들은 다음과 같다. 1) String 의 길이를 알기 위해서는 length() 메소드를 사용하면 된다. 2) String + String 보다는 Stringbuilder를 통해 append 하면 연산이 빠르다. 3) substring(시작위치,끝위치) 메소드를 이용해 문자열을 자른다. split 보다 권장되는 사항이라고 한다. 위 3가지를 이용해 쉽게 풀었다. 알고리즘은 다음과 같다. 1) i = 1, answer = s의 길이; 2) ( i < 문자열 길이의 반) 이라면 3번으로 간다. 아니라면 10)번으로 간다. 3) cnt =1 로 초기.. 2020. 7. 25.
[JAVA] 주식가격 - 프로그래머스lv2 파이썬으로 매일 풀다가 자바로 처음 도전했던 문제다. 처음 문제를 이해하지 못해서 한참 고민했지만 풀이방법은 매우 간단하다. [ 1, 2, 3, 2, 3 ] 배열이 주어졌을 때, 아래와 같은 과정을 거친다. (단, n=배열의 길이, i=0~n-1 ) 1) 해당 i 번째 인덱스의 값을 price 라는 변수에 저장한다. 그리고 cnt 라는 변수를 0 으로 초기화한다. 2) j= (i+1 ~ n-1 ) 이라고 하자. 루프를 돈다. 2-1) cnt 의 값을 증가시킨다. 2-2) 만약에 price 의 값보다 j가 더 작으면 루프를 탈출한다. 3) answer[i] 에 cnt 값을 저장한다. 아래는 소스코드 2020. 7. 25.
[데이터베이스] transaction manager, storage manager, query manager transaction manager - 트랜젝션이란? 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미 트랜잭션 매니저는 동시다발적인 트랜잭션을 관리 할 수 있어야 한다. transaction manager 의 필수 기능 ACID Atomicity (원자성) - 트랜잭션의 실행이 완전하게 일어나던지 아니면 시작조차 하지 않던지 둘중에 하나만 하라. Consistency (일관성) - 트랜잭션이 성공적으로 완료 되면 일관적인 DB의 상태를 유지하는 것을 말한다. 데이터형이 정수형에서 string으로 변한다거나 하면 안된다. Isolation(격리성) - 트랜잭션 수행시 다른 트랜잭션은 끼어들 수 없다. durability.. 2020. 6. 11.
[데이터베이스] 기본키와 외래키 그리고 제약조건의 설계 기본키 - primary key - 데이터를 구분하는 가장 근본이 되는 값 - not null & unique 외래키 학번 이름 수강과목 b6xxxx 김길동 1 b7xxxx 조길동 2 b5xxxx 박길동 3 수강과목id 과목이름 1 자료구조 2 프로그래밍 언어 외래키는 위 처럼 다른 테이블의 '기본키'를 참조할때 외래키라고 한다. 박길동은 3번 과목이 없지만 3번 수강과목을 들었다고 되어있는 데 이런 현상을 dangling 이라고 한다. 이는 참조 무결성을 위반한 것이다. 제약조건의 설계 -개체 무결성(entity integrity) 기본키는 null 을 가질수 없다. - 참조 무결성 (referential integrity) 외래키는 참조하는 테이블에 존재하여야 한다. - 도메인 무결성 (domain .. 2020. 6. 11.
intro DBMS 기말고사 대비겸 데이터베이스 공부한 것을 정리해보고자 한다. 어디까지 정리할지는 모르겠지만 앞으로 데이터베이스 지식에 도움이 될거 같아서 정리해 두기로 한다. 본 장에서는 간단하게 개념위주로 설명한다. DBMS 란? - 데이터 베이스를 관리하는데 필요한 기능을 제공하는 소프트웨어 DBMS 필수 기능 4가지 사용자가 데이터베이스를 디자인 할 수 있어야한다. 모든 사용자가 데이터 베이스를 조작할 수 있어야 한다. 대량의 데이터를 안전하게 보관할 수 있어야 한다. 많은 사람이 동시에 데이터를 볼 수 있어야 한다. 데이터 딕셔너리 란? 데이터 베이스 자원을 효율적으로 관리하기 위한 다양한 정보를 저장하는 시스템 테이블 테이블을 생성 및 변경할 때, 서버에서 자동으로 갱신된다. 사용자가 직접 수정 및 삭제할 수 .. 2020. 6. 11.
[머신러닝] kNN 알고리즘 kNN 알고리즘을 사용하여 농구선수의 포지션을 예측해보자. 1. 데이터 살펴보기 read_csv() 함수를 통해 csv파일을 데이터프레임형으로 저장합니다. 경로의 뜻은 이전디렉토리로가서 csv 폴더를 찾고 basketball_stat.csv 라는 파일을 지칭한 것입니다. csv 파일에 대해 더 자세히 알고싶으시면 https://ko.wikipedia.org/wiki/CSV_(%ED%8C%8C%EC%9D%BC_%ED%98%95%EC%8B%9D) CSV (파일 형식) - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. CSV(영어: comma-separated values)는 몇 가지 필드를 쉼표(,)로 구분한 텍스트 데이터 및 텍스트 파일이다. 확장자는 .csv이며 MIME 형식은 tex.. 2020. 1. 9.
[머신러닝] 기초 용어 및 개념 1. 지도 학습과 비지도 학습 지도학습(supervised learning) : 정답을 알려주면서 진행되는 학습 ex) 숫자 손글씨 이미지를 '데이터' 라고 하고 이미지의 답들을 '레이블(label)' 이라고 한다. 비지도 학습(unsupervised learning): 레이블이 없이 진행되는 학습. 보통 데이터의 패턴을 찾아내야 할때 사용한다. 2. 분류와 회귀 분류 (classification)는 '이진분류' ,'다중분류' 와 '다중 레이블 분류' 로 나뉜다 이진분류 : (예,아니요) , (남자,여자) 와 같이 둘 중 하나의 값으로 분류하는 경우 다중분류: (빨강,녹색,파랑) 중 하나의 색으로 분류하거나 0-9 까지의 숫자 중에서 하나의 숫자로 분류하기 다중 레이블 분류: 데이터가 입력 되었을 때 2.. 2020. 1. 8.