07.27

바르고·2023년 7월 27일
0

공공데이터.


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 역량 테스트 BReference 코드 정리 된 블로그
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분 안에 안 풀리면 알고리즘 유형 보기.
그래도 한 시간 넘게 안 풀리면 구글링 후 다른 사람 풀이 참조.

 
profile
바르고의 다락방

0개의 댓글