본문 바로가기

IT To do and To was

22년 12월 11일_모르는게 많다..

728x90
반응형

일요일[벌써 일요일이네]

 

1. DFS/BFS 정리

2. 다이나믹 프로그래밍 정리

3. 알고리즘

4. 암기고래

5. 정보처리기사

6. ㅅㅅㅇㅇ 정리

 

 

1>

DFS란?

Depth-First Search

깊이 우선 탐색

 

최대한 깊이 내려간 뒤, 더이상 갈 곳이 없을경우 옆으로 이동

미로찾기를할 때 최대한 한방향으로 갈 수 있을 때까지 쭉 감

- 모든 노드를 방문하고자할 때 이 방법을 선택함

- BFS에 비해 느림

 

스택 또는 재귀함수로 구현

 

BFS란?

Breadth-First Search

너비 우선 탐색

 

최대한 넓게 이동한 다음,더 이상 갈 수 없을 때 아래로 이동

 

루트노드에서 시작해서 인접한 노드를 먼저 탐색하는 방법

최단 경로를 찾고 싶을 때 

 

큐를 이용해서 구현

 

2>

다이나믹 프로그래밍 정리 [동적 계획 법]

 

최적의 경로를 찾을 때 활용

대표적인 예시 피보나치

# 한번 게산된 결과를 메모이제이션하기 위한 리스트
memo = [0]*100

# 피보나치 수열을 재귀함수로 구현(topdown)
def fibo(x):
  # fibo(1)=fibo(2)=0
  if x==1 or x==2:
    return 1

  # 이미 계산한 적있는 문제라면 그대로 반환
  if memo[x] != 0:
    return memo[x]

  # 아직 계산하지 않은 문제라면 점화식에 따라서 피보나치 결과 반환
  memo[x] = fibo(x-1)+fibo(x-2)
  return memo[x]


print(fibo(99))

3>

중복된 문자 제거

def solution(my_string):
    a = []
    for i in my_string:
        if i not in a:
            a.append(i)
    return "".join(a)

다른사람이 한 풀이

def solution(my_string):
    return ''.join(dict.fromkeys(my_string))

중복이 허용되지 않는 dict를 사용

 

팩토리얼

def solution(n):
    answer = 1
    result = 0
    if n == 1:
        return 1
    if n == 2:
        return 2
    for i in range(1,n):
        answer *= i
        if answer < n:
            result = i
            continue
        elif answer == n :
            result = i
            break
        elif answer >n:
            break
    return result

다른사람이 한 풀이

import math

def solution(n):
    answer = 0
    for i in range(1, 12):
        if n < math.factorial(i):
            return i - 1
    return answer

math 함수 사용

 

A로 B 만들기

def solution(before, after):
    before = list(before)
    after = list(after)
    try:
        for i in before:
            after.remove(i)
        return 1
    except:
        return 0

다른사람이 한 풀이

def solution(before, after):
    return 1 if sorted(before)==sorted(after) else 0

sorted 를 사용

 

내적

def solution(a, b):
    return sum(a[i]*b[i] for i in range(len(a)))

다른사람이 한 풀이

solution = lambda x, y: sum(a*b for a, b in zip(x, y))

람다식 활용

 

4>

현재완료형

mat | meet

have mat 이미 만났다 (have +  p.p)

벌써 ~ 했다.

~한적있다.

have tried

have not 부정문

 

i haven't p.p 아직 안해봤다

                                                                    

샀다 bought

주문했다 ordered

얘기했다 said

 

4>

자료흐름도 4가지 구성요소
- 처리 Process : 원
- 자료흐름 Data Flow : 화살표
- 자료저장소 Data Store : 평행선
- 단말 Terminal : 사각형

 

5>

Petra

개인정보처리자는 데이터가 분실·도난·유출·위조·변조 또는 훼손되지 않도록내부 관리 정책을 수립하여 접근을 통제하고 접속 기록을 보관하여안전성 확보에 필요한 기술적·관리적 조치를 수행 하여야 합니다.

Petra는 인가되지 않은 사용자의 데이터베이스 접속과 SQL 실행 권한을효율적으로 관리, 통제함으로써 기업이 보유하고 있는 데이터의 무결성과 가용성을 보장

 

PetraCipher

개인정보 유출에 따른 피해의 증가, 법규에 의한 처벌 강화 등 개인정보를취급하는 모든 기업은 개인정보를 보호하기 위한 기술적·관리적 조치가 필요합니다.

Petra Cipher는 인증받은 암호화 모듈, 중복 암호화 방지 등의 기술로 데이터와 파일을 암호화하여 비인가자가 데이터를 확인할 수 없도록 기밀성과 무결성을 보장

 

PetraSQL

비인가자에 대한 데이터베이스 접근 증가로 접속 권한 및 계정 관리의 중요도가높아지고 있습니다.

데이터베이스 보안과 SQL Tool을 통합한 PetraSQL는 웹 기반 서비스로 데이터베이스 접속 정보와 권한을 보안관리자가 중앙에서 통제하여 높은 기밀성(Confidentiality)을 유지하고 다중 DBMS 접속, 통합권한관리, 사용자 및 조직별 SQL 공유, SQL·API·FUNCTION을 활용한 작업 스케쥴링으로 사용자의 업무 효율과 보안성을 향상

 

PetraSign

내부 사용자에 의한 데이터 노출 및 관리 소홀로 인한 유출 사고 증가로 체계적인 데이터베이스 접속 및 권한 관리가 필요합니다.

Petra Sign은 권한 결재 시스템으로 SQL과 사용자에 대한 권한을 부여 하고 책임을 증빙함으로써 민감정보(데이터)를 효율적으로 관리할 수 있으며 사용자에게는 업무 정당성을 제공 

 

데이터베이스에 저장된 민감정보 및 개인정보 보호용 제품을 개발

데이터 베이스 보안 기술 연구 개발

데이터 베이스 접근통제, 암호화, 및 권한 결재와 같은 데이터베이스보안제품을 전문으로 생산

 

// yesterday wished to today list.

. DFS/BFS 정리_✔️

. 다이나믹 프로그래밍 정리_✔️

. 알고리즘_✔️

. 암기고래_✔️

. https://www.comcbt.com/cbt/onlyview3.php _✔️

. https://www.sinsiway.com/ 알아보기_✔️

 

Day after tomorrow wish list

. 이것이

. 알고리즘

. 정처기 범위 공부

728x90
반응형