목록분류 전체보기 (184)
이숭간 공부기록
Object Oriented Programming 객체지향 프로그래밍이란,, 너무나도 크고 추상적인 개념이고 또한 매우 중요하다 사실 자바에대한 공부를 하는것도 객체지향적 프로그래밍을 하기 위한것이라고 생각한다. 객체지향 프로그래밍이란 간단하게 말해 현실세계를 컴퓨터로 옮겨서 프로그래밍하는것이라고 생각한다. 현실의 사물을 하나의 객체로보고 공통된 성질을 가지는 객체들을 나타낼수있는 특징을 추상화시켜 하나의 클래스로 만든다. OOP의 4가지 특징 추상화(Abstraction) 구체적인 사물들의 공통적인 특징을 파악해서 이를 하나의 개념(집합)으로 다루는 것 추상화를 이용하면 공통된 특성을 뽑아 하나의 클래스를 정의할 수 있다. 즉 객체지향적 관점에서 클래스를 정의하는것을 추상화라고 할 수 있다. 캡슐화(E..
Wrapper class 프로그램에 따라 기본타입의 데이터를 객체로 취급해야 하는 경우에 자바에서 제공하는 Wrapper class를 이용한다. 예시로, 어떤 메소드의 파라미터가 객체타입만 가능하다면, 기본타입을 그대로 사용할 수 없으므로 래퍼클래스를 한번 거쳐서 객체로 변환후 메소드를 호출해야한다. - 자바에서 제공하는 Wrapper class byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean 래퍼클래스는 각각의 타입에 해당하는 데이터를 인수로 전달받아, 해당값을 가지는 객체로 만들어준다. 래퍼클래스는 모두 java.lang패키지에 포함되어 제공된다. 박싱, 언박싱 래퍼클래..
2021 프로그래머스 카카오 코테는 프로그래머스에서 진행되었고 3시간동안 4문제를 풀어야했다. 외부IDE사용안되고 복붙 안됨 기업 코테는 처음이였는데,, 히든 테스트케이스??를 안알려주는지 몰랐다. 입출력 알려주는 2-3개 테스트케이스 이외에 제출하기 누르면 채점되는 그 부분,, 그게 없었다. 그래서 2,3개의 테스트케이스만으로 풀어야해서 예외케이스들을 못잡았을까봐 좀 불안하다....... ㅜㅜ 3.5솔 / 4 1번 - 세금계산 (재귀?) 1번문제부터 일단 지문이 너무 길고 세금..관련 그런 느낌이라 사알짝 어 뭐지? 하는 느낌이 있었다. 주어지는 파라미터만 6갠가 그랬고 아무튼 지문이랑 설명이 너무 길어서 문제를 먼저 잘 이해해야했다. 2번 - 그래프이동 그래프내에서 주어진 직사각형만큼을 주어진 방향대..
https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 문제유형 : 그리디 문제풀이 : 스택을 이용한다. ( 숫자의 맨앞을 계속해서 더 크게 만들어주는것 ) 스택에 숫자가 있고 k가 0 이상이면 현재숫자와 비교해서 더 큰값이 스택의 앞쪽에 위치할 수 있도록 한다. 만약 현재숫자가 현재스택 최상단숫자보다 작으면 그냥 넣는다. 현재숫자가 더 크다면 스택에서 pop하고 k를 1감소시킨다. 이 과정을 더이상 스택의 최상단에서 현재숫자보다 큰값이 안나올때가지 반복한다. 숫자를 모두 확인했는데 k가 0이상이면 더 제거해야한다는 뜻이고, 이미 앞쪽에는 최대한 큰 숫자가 앞에 위치하도록 조정해 놓은것이므로 ..
https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 문제유형 : DP 문제풀이 : 특정 좌표가 웅덩이에 포함되어있는지 확인할때 주어진 좌표는 행,열이 바뀌어잇기때문에 i,j가 아니라 j,i로 확인해줘야했다. 점화식 : S[i][j] = S[i-1][j] + S[j-1][i] 이때 j,i가 puddles에 포함되어있다면 위 점화식을 수행하지 않고 0으로 바꿔주고 넘어간다. 정답코드 : def soluti..
HashTable 해시테이블은 (key, Value)로 데이터를 저장하는 자료구조로, 빠르게 데이터를 검색할 수 있는 자료구조이다. 해시테이블이 빠른 검색속도를 제공하는 이유는 내부적으로 배열(버킷)을 사용하여 데이터를 저장하기때문이다. 각각의 key값에 해시함수를 적용해 배열의 고유index를 생성하고 이 index를 활용해 값을 저장,검색한다. 저장과정 1. key가 John Smith일때, 해시함수를 이용해 index를 계산한다. 2. array[index] = "521-1234"를 저장한다. 이렇게 저장하게되면 Key값으로 데이터를 찾을때 해시함수를 한번만 수행하면 바로 키값을 찾을수 있으므로 O(1)시간에 데이터를 저장.삭제,조회할수 있다. 즉, 특정 데이터를 검색하는데 있어 배열을 순차적으로 ..