본문 바로가기

TIL

[240110] 플로우 차트 & SQL/파이썬: 코드카타

플로우 차트(Flowchart)란? 

1. 의미

- 워크플로우 혹은 프로세스를 보여주는 다이어그램의 한 종류로 순서도라고 부름 

- 복잡한 프로세스를 명확하고 이해하기 쉽게 시각적으로 표현한 자료 

 

2. 플로우차트 기호

https://yeon-design.tistory.com/21

 

* 더 많은 기호는 https://www.smartdraw.com/flowchart/flowchart-symbols.htm

3. 플로우차트 규칙 

- 범용적으로 약속된 표준 기호 사용
- 순서 흐름에 따라 위에서 아래로, 왼쪽에서 오른쪽으로 그림
- 기호 안에는 작업하거나 처리해야 할 내용을 간단명료하게 서술
- 기호의 가로, 세로 비율은 정해지지 않으나 구분할 수 있도록 명확하게 그림
- 흐름선은 서로 교차해도 무관하며 서로 영향을 주지 않음 

* 출처: https://boardmix.com/kr/skills/what-are-flowcharts/

 

4. 플로우차트 그리기 좋은  Tool 

-  draw.io (https://app.diagrams.net/): 작업 후  구글 드라이브에 저장 가능 


[SQL 코드카타]

1141. User Activity for the Past 30 Days I

https://leetcode.com/problems/user-activity-for-the-past-30-days-i/description/

 

1) 어떤 문제가 있었나

지정일로부터 30일 이전까지 데이터만 조회 필요한데 일반 - 연산식으로 풀이 불가

 

2) 내가 시도해본 건 무엇인가

구글링을 통해 날짜에서 일수를 빼거나 더할 수 있는 함수 서치 

 

3) 어떻게 해결했나

DATE_ADD의 MYSQL 문법을 확인하여 적용해 정답 처리

SELECT activity_date day, count(distinct user_id) active_users  
  FROM Activity
 WHERE activity_date BETWEEN DATE_ADD('2019-07-27', INTERVAL -29 DAY) AND '2019-07-27'
 group by activity_date


4) 무엇을 새롭게 알았나

- DATE_ADD: 날짜에 월/일/시간/분/초 만큼 더하거나 뺄 수 있는 함수. INTERVAL 에 음수를 넣으면 빼기 가능 

날짜 구분 연산식
DATE_ADD(날짜/칼럼명, INTERVAL 1 MONTH)
DATE_ADD(날짜/칼럼명, INTERVAL 1 DAY)
시간 DATE_ADD(날짜/칼럼명, INTERVAL 1 HOUR)
DATE_ADD(날짜/칼럼명, INTERVAL 1 MINUTE)
DATE_ADD(날짜/칼럼명, INTERVAL 1 SECOND)

* 1은 임의로 넣어둔 것으로 원하는 숫자를 넣으면 됨 


[파이썬 코드카타]

자릿수 더하기

https://school.programmers.co.kr/learn/courses/30/lessons/12931


1) 어떤 문제가 있었나
자연수의 각 자릿수를 분리하는 방법을 모름

2) 내가 시도해본 건 무엇인가
각 자리를 100, 10으로 나눈 후, 자연수와 소수점을 분리할 수 있을지 고민했으나 실패 

3) 어떻게 해결했나
구글링과 풀이를 통해 숫자를 문자열 구조로 바꾼 후 한 음절씩 빼내는 것 가능함을 파악

파이썬 기초 강의에서 abcdefg를 활용해 분리했던 작업을 복기 

def solution(n):
    n = str(n)
    answer = []
    for i in n:
        answer.append(int(i))
    answer = sum(answer)
    return answer


4) 무엇을 새롭게 알았나

- for문에 문자열을 넣으면 한 음절씩 꺼내짐