자료구조
-
HashMap(프로그래머스 전화번호 목록)자료구조 2021. 12. 10. 20:14
프로그래머스 전화번호 목록 length, length(), size() length = 배열의 길이 length() = 문자열의 길이 size() = 컬렉션프레임워크의 길이 리스트 또는 Array 등 컬렉션 안에 들어있는 원소의 갯수(?) import java.util.HashMap; class Solution { public boolean solution(String[] phone_book) { //hashMap 생성 HashMap map = new HashMap(); for(int i = 0; i
-
문자열 공백 url 인코딩하기자료구조 2021. 11. 28. 23:14
문자열 공백 인코딩 조건 문자열 길이가 정해졌고, 문자열 길이를 늘리지 않으면서 공백 하나당 %20으로 인코딩해주어라 해결방법) 문자열 안에 있는 문자들을 맨 끝으로 채워주면서 빈 공간이 생기면 %20을 채워주는 방식으로 해결 포인터와 인덱스를 사용 인덱스는 맨끝부터 포인터는 실제 문자열 끝자리에 둔다.포인터를 돌리면서 인덱스에 복사를 한다. 복사를 마치고 나면 포인터와 인덱스를 한칸씩앞으로 옮겨서 배열 전체를 돌 수 있게 설정해준다. 공백이 모두 사라지면 포인터와 인덱스가 같은 자리에 두어진다.
-
TIL 38th day자료구조 2021. 11. 28. 19:30
MVC 프레임워크 v5(어댑터 패턴) Object handler가 있어야 원하는 인터페이스를 적용 가능 controller.process()에는 ControllerV3 인터페이스가 적용되므로 파라미터에 값에 Map Map은 빈 Map이므로 요청 받은 값을 Map에 채워주기 위해 createParamMap 메소드를 선언하고 변수로 설정해준 다음 process안에 인자 값으로 넣음 만약 ControllerV3가 필요한 핸들러라고 가정해보자. 이 때는 ControllerV3에 적합한 handle 로직을 짜야하기 때문에 return을 mv로 변환해서 반환해줘야 한다. 어댑터 선택 과정은 이러하다 supprots 메소드를 통해서 적합한 인터페이스 규격을 찾아주고 그 규격을 handle에 넘겨준다. V3 인터페이스..
-
문자열 치환자료구조 2021. 11. 27. 23:35
문자열 치환 조건 : 가지고 있는 문자열의 종류와 갯수가 같아야한다. 대소문자를 구별하는가, 공백의 유무를 확실히해야한다. 대소문자를 구별하고 공백을 문자로 구별했을 때, 두개의 문자열을 정렬하고 한자씩 비교하는 방법이 있다. ASCII 코드를 이용한 문자열 치환 128개의 index를 만들어놓고 순차적으로 돌면서 문자열을 비교해준다. index가 비어있다면 1을 채워넣어주고 해당하는 index에 같은 값이 존재한다면 -1을 해주는 방식으로 처리한다. 만약 문자열이 치환되었다면 index는 0이 출력되어야한다.
-
Array 중복 확인자료구조 2021. 11. 27. 01:37
ASCII 방식의 Array 중복 확인 boolean 방식으로 index를 설정하고 전부 false로 둔 뒤 index를 돌았을 때, true값이 이미 있으면 중복임을 확인 가능 Unicode를 이용한 Array 중복 확인 2의 20승 + 2의 16승이 = 1,114,112 값이므로 HashMap을 사용하는것이 좋다. Bit Operator(비트 연산자) 하나의 숫자에 여러가지 의미를 담고 싶을 때 사용하는 연산자 1, 2, 4, 8, 16으로 각각의 고유한 비트 값이어서 더하더라도 구분이 가능해짐. 담을 수 있는 데이터 값이 한정적이므로 a~z까지 소문자로 데이터를 등록한다. 쉬프트 연산을 이용해서 구현이 가능하다. 추가 배열을 생성할 수 없다면? 두개의 포인터를 사용해서 하나의 포인터는 해당 값만큼 ..