공공데이터.
XML
- Markup Language
- 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어
- HTML, SGML ...
- XML
- Extensible Markup Language, '확장가능한'
- 필요에 따라 태그를 확장 가능
- 정확한 문법 지켜야, Well formed
기본 문법
- 문서의 시작은 <?xml version="1.0" encoding="UTF-8"?>
- 반드시 root element가 존재해야
- 나머지 태그는 tree 형태
- 시작태그와 종료 태그는 일치해야 한다.
- 시작태그는 key-value 구조의 속성을 가질 수 있다.
- 속성 값은 "" or ''로 묶어서 표현
- 태그는 대소문자 구분
valid
- xml 태그는 자유로워 생성하기 때문에 최초 작성자의 의도대로 작성 했는 지 확인 필요
- DTD 또는 Schema를 이용해 문서의 규칙 작성
- * -> 여러개가 나올 수 있다.
파싱
- 필요한 정보를 얻기 위해 태그를 구별하고 내용을 추출하는 과정
- 전문적인 parser 활용, 정보를 파서..
- SAX parser
- Simple API for XML parser
- 문서를 읽으면서 태그의 시작, 종료 등 이벤트 기반으로 처리하는 방식
- 빠르고 한 번에 처리하기 때문에 다양한 탐색이 어렵다.
- DOM parser
- Document Object Model
- 문서를 다 읽고 난 후 문서 구조 전체를 자료구조에 저장하여 탐색
- 다향한 탐색이 가능하지만 느리고 무거우며 큰 문서 처리 어렵다.
DTO, data Transfer Object
-----
Json
- javascript Object Notation, 자바스크립트에서의 객체 표현법
- 간결한 문법, 단순한 텍스트, 적은 용량으로 대부분의 언어, 플랫폼에서 사용 가능
- 이 기종 간의 데이터 교환에 광범위하게 사용됨.
- 객체를 key-value 쌍으로 관리
11시 - 보충
파싱은 괜춘.
- 로컬에 저장해 2차 활용은 금지..
Csv, Xml, Json
Sas 는 야금야금 읽어 옴. 재사용 불가.
- 키오스크 같은 곳에..
JSON
- https://github.com/google/gson
-
취업특강 - 자기 알기
AI 자소서 활용.
우대공고.
1학기 부터 차근차근 준비.
서류/코테 합격 후 면접 확정자만 상담가능.
b형 준비
공부해볼만한 키워드Permalink
Array, Linked List, Bitwise 연산, Greedy, 완전탐색(Brute-Force), BFS, DFS, DP, 분할정복, Sort, Binary Search, Graph, Dijkstra, Tree, LCA, Heap, Trie, KMP, Hash
문제 이해 -> 아이디어 도출 -> 설계 -> 구현 -> 디버깅 -> 최적화
배드 케이스, 엣지 케이스.
리스트, 스택, 큐, 힙, 맵 등의 자료구조를 잘 조합해서 시간초과가 날만한 부분에서 시간복잡도를 단축시키는 시험이라고 생각.
따라서 자료구조들의 특성(특히 각 메서드의 시간 복잡도)을 공부하시고 이를 퍼즐처럼 조합하시는 연습을 많이 해보시면 됩니다.
Java 기준 HashMap, TreeMap, HashSet, TreeSet에 대해 공부를 하시면 좋습니다.
B형 시험은 4시간이 주어지는데 이 중 1~2시간은 코드를 안짜고 종이와 펜으로 자료구조를 조합해서 설계를 하셔야 합니다.
-----
박트리 블로그.
-- 필수
해싱 : B형보는데 해싱을 모르고 응용할 줄 모르면 바로 혀 깨물어야됨
링크드리스트 구현 : 링크드리스트 쓰는 문제 진짜 많이 나온다
트리 구현 : 자식 수가 안 정해진 트리를 구현하는 법은 무적권 알아야 됨
메모이제이션 : 한 번 계산한 값을 다시 계산안하는 개념이 있어야됨
비트마스킹 : 변수를 쪼개서 공간복잡도를 아끼면서 저장하거나 다양한 비트 연산을 이용해서 코드를 최적화 하는 방법들
이분탐색 : 핵 기본적인 개념
분할정복 : 가끔식 출제 되는듯
Sort : 소팅 알고리즘은 퀵소트는 필수고 여유있으면 머지, 계수, 기수까지는 공부해보자.
Heap : 힙도 막상 필요할 때가 있음 스케쥴링 문제라던가 스케쥴링 문제라던가
Queue, Stack : B형 시험보러 갈껀데 큐 스택 못짜면 반성해야됨
-- 알아두면 좋은 것들
Trie : 문자열 관련된 문제에서 강력함. 거의 Trie나 해싱이 정해인 정도 Trie에 해싱을 끼얹거나
LCA(Lowest Common Ancestor) : 디렉토리 구조나 가계도 이런 유형에서 등장 할 만한 기법
BST(Binary Search Tree) : bbst까지는 너무 어렵고 bst 정도? 사실 힙으로 어느정도 커버가 되는 부분
Segment Tree : 알아두면 쓸 일이 언젠가 생기지 않을까?
Sqrt Decompisition : 개념은 쉽고 유용한데 쓸 일이 많은 유형인지는 잘 모르겠다
[O(n) 복잡도의 코드를 O(logn) 혹은 O(1) 로 최적화 하는 과정]
https://www.acmicpc.net/workbook/view/1152 기출모음
https://www.acmicpc.net/problem/3425 고스택
https://www.acmicpc.net/problem/5373 큐빙
https://www.acmicpc.net/problem/15778 윳노리
\https://www.acmicpc.net/problem/15949 Piet
https://www.acmicpc.net/problem/2680 QR
https://www.acmicpc.net/problem/15827 그날의 너
https://www.acmicpc.net/problem/11743 Iceberg Order
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV4su3xKXFUDFAUf 숫자야구게임
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV4szU-qXKYDFAUf&categoryId=AV4szU-qXKYDFAUf&categoryType=CODE&problemTitle=%EB%B8%94%EB%A1%9D+%EB%B6%80%ED%92%88+%EB%A7%9E%EC%B6%94%EA%B8%B0&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 블록부품 맞추기
[ 1시간 문제이해 및 설계, 2시간 구현 및 디버깅으로 정확한 아웃풋 줄력, 1시간 최적화 ]
무언가를 전처리 한다거나 정렬을 해서 이분탐색을 한다거나 해싱을 해서 어떤것을 좀더 빨리 찾고 빨리 접근 한다는 식이라서 찾고 바꾸고 계산하는 것들은 [ 전처리, 메모이제이션, 이분탐색, 해싱 ] 선에서 거의 다 끝난다. 가으으아으끔 [ 트라이, LCA, 세그먼트 트리 ] 를 사용하는 정도의 최적화도 필요할 수 있다.
-----
삼성 SW 역량 테스트 B형 Reference 코드 정리 된 블로그
https://bloodstrawberry.tistory.com/19
------
Linked List, Greedy, BFS, DFS, Sorting(Merge, Quick, Heap), Binary Search, Tree, Hash, DP + (심화) Trie, KMP
테스트 케이스를 모두 통과하더라도. 숨겨진 테스트 케이스와 최악의 상황을 가정해 최적화.
-----
https://na982.tistory.com
-----
45분 안에 안 풀리면 알고리즘 유형 보기.
그래도 한 시간 넘게 안 풀리면 구글링 후 다른 사람 풀이 참조.