클래스에서 self 가 붙은것: 인스턴스 ~~

 

def 함수명(인자1, 인자2 ...):

#함수 코드

return 리턴값

 

:시간복잡도- 자료가 많아질수록 걸리는 시간이 커진다.

 

이중 for문: n^2

삼중 for문; n^3

 

 

 

 

 

#코딩테스트할때 dict로 변경하면 시간단축이 많이 되는 이유!

 

 

 

: 탐색, 확인 => set이나 dict

: index접근 => list 

 

 

 

 

 

출처:  https://www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt

 

'기타' 카테고리의 다른 글

김종민 블로그 + 알고리즘 관련 재밌는 책  (0) 2021.06.15
참고하기 좋은 사이트  (0) 2021.05.09

0. 칼럼 너비줄이기

COL 칼럼명 FROMAT 999

COL 칼럼명 FORMAT A10

0-1. 전체 테이블 길이 세팅

SET LIN 200

 

1, pseudo column 의사열 -query가 가능한 열

-rownum을 이용하여 검색된 로우의 수를 검색할 수 있다

-rownum은 각 검색된 행의 일련번호로써, order by에 의한 정렬 이전에 부여된다. <<중요

-rowid는 테이블내의 특정한 행을 유일하게 구별해주는 값으로 데이터타입은 rowid이다. 

 

2. where

-검색결과에 대한 제한을 둘때

-where는 from 뒤에 옴

-문자열과 날짜는 싱글쿼터

-where절 생략가능. 생략시 모든 행이 검색

-where 조건식의 결과가 true인 행만 선택

-where 별칭사용 불가

-테이블 데이터를 추출하는 필터

-조인시 테이블들을 연결하는 조건으로 사용

 

-산술연산 비교연산, 컬럼, 숫자문자상수, like, in, between, is null 

-함수, 논리연산자, any, all => 조건식의 표현식

 

select 컬럼 [as] 별칭

from 테이블명 별칭 ;

where condition(s)

 

 

#밸류는 꼭 대문자쓰기!! FORD

#잘려서 짜증난다. LIN 이용해서 길게 늘려주기

SHOW LIN(ESIZE)

=> 디폴트는 80

SET LIN 160

=> 중간에 잘리지 않고 길게 나온다.

 

 

2. 사원테이블에서 급여가 3000이상인 사원번호, 이름, 급여를 리턴

#컨디션 주는것 때문에 대문자로 사용하는것이 편하다.

 

3, between a and b (a<b)

not between a and b:  a보다 작고, b보다 큰

 

4. in (여러값 중 하나와 일치하는 값)

in   =any

not in    !=all

in(값1, 값2, 값3) 형태- 비교값이 하나더라도 ()와 함께 사용, 다양한 데이터타입 가능

 

4-1. 사원테이블에서 사원번호가 7902, 7788,7566인 사원사번, 이름,급여, 입사일 출력

 

5. like (문자의 패턴이 일치하는 값)

% 임의의 길이 문자열(공백문자가능),

_ 한글자

escape: 검색할 문자에 % _ 문자를 포함시

 

6. 이름이 D로 끝나는 사원, 두번째 글자가 A인 사원

7. 테이블 생성

create table ab (name varchar2(10)); #ab라는 테이블 생성

drop table ab; #테이블 삭제

insert into ab values(' 1234 ');  #1234라는 값 삽입

insert into ab values(' b%gildong'); #like로 못찾음. escape 이용

escape 쓰는법:

 

select * from ab where name like '%#%%' escape '#';   #% % 사이에서 #뒤에 있는거 찾겠다.

select * from ab where name like '%!%%' escape '!';     #얘도 동일 (value 에 없는걸로 escape 설정)   

8 사원테이블에서 커미션이 null인 사원 출력 (is null / is not null) ==연산자 불가

select * from emp where comm is null;

 

9. 함수 : 단일행(문자함수, 숫자, 날짜 변환, 기타), 다중행

문자함수

UPPER, LOWER, INITCAP(첫문자만 대문자), CONCAT(일렬로 합치기),SUBSTR, INSTR(특정문자열의 위치 숫자로 리탄) ,LENGTH, CHAR, ASCII 

 

10. 부서번호가 10인 사람들의 사원번호, 이름, 사원번호+이름 출력 : CONCAT

 

 

11. 사원테이블에서 이름첫글자가 K보다 크고 Y보다 작은 사원들을 이름순으로 정렬

SELECT * FROM EMP

WHERE SUBSTR(ENAME,1,1) > 'K' AND SUBSTR(ENAME,1,1) <'Y'    #'K' < 'Y' 는 안됨. AND 조건으로 각각 다룰것

ORDER BY ENAME;

selecct substr('ABCDEFG', -5, 4 FROM DUAL; => CDEF

SELECT 'ABCDEF', INSTR('ABCDEF', 'Z') RES FROM DUAL;  => 0

SELECT INSTR( 'CORPORATE FLOOR' ,' OR', 3, 2) => 14

(OR이 총 3SET가 있는데, 3번글자 뒤에서부터, 2번째 OR의 INDEX를 찾아라 _ 띄어쓰기 공백도 포함)

LTRIM은 되는데 TRIM으론 안돼

'SQL-오라클' 카테고리의 다른 글

SQL-cmd 4  (0) 2021.05.26
SQL- cmd3- 비주얼툴은 언제 쓰는가...  (0) 2021.05.25
sql 예제  (0) 2021.05.24
sql 자료  (0) 2021.05.24
SQL- cmd에서 SCOTT/TIGER  (0) 2021.05.20

0. 모든테이블 확인

select *

from tab;

 

0-1. 접속계정 확인

show user;

 

0-2. 구조보기 (desc)

desc emp;

desc dept;

 

0-3. help set (도움말

 

0-4. set num 7   #숫자길이; 소숫점 아래자리 범위

 

 

1. 부서 출력

select *  

from dept;      #이제는 세미콜론 쓰는 습관 들이기! 

 

2. 사원이름 번호 출력

select ename, empno

from emp;

3. 부서테이블에서 부서번호, 위치 출력

select deptno, loc    #selec 말고 select라고 끝까지 쓰기 주의

from dept;   #emp 아니고 dept

 

4.사원테이블 부서테이블 전체출력 (12*4-dept)

select *

from emp, dept;

 

4-1. 너무 기니까 간단하게 (선택적으로 골라오기) 

select emp.ename, emp.deptno, dept.dname

from emp, dept;

 

4-2. 별칭주기 (테이블에는 as 없음)

 select 컬럼 [as] 별칭..

 from 테이블명 별칭..; 

 

select 사원.ename, 부서.deptno, 부서.dname

from emp 사원, dept 부서;

 

5. 쿼테이션으로 이름변경 (as는 선택적) 

select ename as "사원이름", deptno as "부서이름", sal as "봉급"

from emp;

6. 문자열 연결 연산자 ||(shift+ \ 2번) : select 위치 지정   (타이틀만 더블쿼터, 밸류는 싱글!!)

select ename||'님'  #더블쿼터 안됨

from emp;

 

(= "= char 정적/  varchar, varchar2 가변)

(char(20)은 / varchar(20): 2자리 주면 char은 20개, varchar은 2개만 18개 메모리 안잡음)

 

6-1. 00님은 00일에 입사했다 출력해보기

select ename||'님은' ||hiredate||'일에 입사했다'   #연결연산자니까 hiredate에는 앞뒤로! 

from emp;

select ename||'님은', hiredate||'일에 입사했다. (콤마도 된다)

7.distinct (열중복제거)

select distinct 

from emp;

 

#select distinct job,deptno (묶어서도 가능)

#distinct 반대말은 all

 

 

8.사칙연산 (연봉구하기)

sal*12 +comm

#comm이 null값이면 연봉계산이 안됨

 

#nvl null값을 채워줌

#연 봉이라고 적을거면 더블쿼터. 

select ename, sal*12+comm  "연 봉"

 

9. order by 정렬할 칼럼[asc(오름차순), desc]

#기본값은 오름차순(asc)이고 숫자로 정렬기준을 세팅할수도 있다. 

 

10. literal :

열이름 열별칭이 아니면서 select 목록에 포함된 문자 숫자 날짜. 각행이 반환될때마다 출력됨

날짜 문자는 싱글로 묶어야하는데 숫자는 그렇지 않음

텍스트 리터럴 문자열은 질의결과에 포함되어 select 목록의 열과 동일하게 취급된다.

 

 

 

SELECT 2 * 1.23, 3 * '2,34' FROM DUAL;

2*1.23    3*'2,34'

---------- ----------

2,46        7,02

 

#내꺼 이상하다.... '2,3' 은 정상 '2.3'은 비정상이어야 하는데 콤마가 비정상이라고 뜨네

 

10, pseudo column 의사열 -query가 가능한 열

-rownum을 이용하여 검색된 로우의 수를 검색할 수 있다

-rownum은 각 검색된 행의 일련번호로써, order by에 의한 정렬 이전에 부여된다. <<중요

-rowid는 테이블내의 특정한 행을 유일하게 구별해주는 값으로 데이터타입은 rowid이다. 

 

 

'SQL-오라클' 카테고리의 다른 글

SQL-cmd 4  (0) 2021.05.26
SQL- cmd3- 비주얼툴은 언제 쓰는가...  (0) 2021.05.25
sql 예제  (0) 2021.05.24
sql 자료  (0) 2021.05.24
SQL-cmd 2  (0) 2021.05.21

스택: lifo. stack, peek, pop. 웹페이지 뒤로가기 앞으로가기.

큐: fifo. 프린터 인쇄대기열. 컨베이어 벨트

 

 

1-1)프로그래머스 주식가격

 

#강의에서 배운 스택(append) 이용해서 풀기

#문제내용 이해보다는 주어진 리스트값을 이용해서 결과값을 도출해내는것을 중점으로 접근해보기

#코드의 효율성도 중요하다. 

 

1-2)프로그래머스 기능개발

#pop함수 이용하기

#cnt+=1 위치에  따른 출력값 차이 인지하기

#zip 이용. 두 리스트를 1대1 대응할 수 있다. 

#append 뒤에 간단하게 if 조건 붙일 수 있다.

#if break문이 아직 낯선데, 익숙해지기

#import deque를 하지 않은이상, pop(0)을 제거하는것이 바람직

#계속 list range 에러 뜸

 

 

1-3)프로그래머스  다리를 지나는 트럭

 

 

#순서대로 지나가야 하니까 fifo. pop으로 풀기

#[0]으로 이뤄진 리스트 que에서 [0,트럭] [트럭,트럭] [트럭,0] [0,0] 이런순서로

#line10에 que[0]으로 했더니 답은 나오는데 실행속도가 너무 느림....#sum[que]로 바꾸니까 됐다. 

#이렇게 긴데 실행속도가 엄청 빠르다고함. 나도 이렇게 생각해보도록 해야지.

 

 

#deque? (덱) - 1,2번 문제풀이에서 모범답안에서 자주 쓰인 라이브러리.

double ended queue의 약자.

일차원 선형자료

스택과 큐의 연산을 모두지원. 양끝에서 삽입과 삭제가능.

시간도 짧게 걸린다! 

append

appendleft

insert

extend

pop

popleft

 

 

 

 

 

'코드테스트' 카테고리의 다른 글

코딩테스트 lv.1 - 파이썬  (0) 2021.06.18
5.해쉬함수  (0) 2021.06.18
4.진법변환/비트연산  (0) 2021.06.17
3. 깊이우선탐색/ 너비탐색  (0) 2021.06.02
2.완전탐색/ 이분탐색  (0) 2021.05.30

Parkito's on the way (shoark7.github.io)

 

Parkito's on the way

Parkito's dev blog for programming, Python, Algorithm, Automation and insights.

shoark7.github.io

 

https://jehyunlee.github.io/2020/02/16/Python-DS-3-matplotlib_color/

 

Matplotlib Colors

Matplotlib은 Visualization용 Library로만 알고 계시는 분들이 많습니다. 이미지 데이터의 색상 관련 operation을 위해서 opencv, pillow, scikit-image 등을 추가로 설치하고 사용하시는 분들이 많습니다만, 의외

jehyunlee.github.io

 

https://velog.io/@sxxzin

 

sxxzin (SOOJIN) - velog

[Programmers][Python]N으로 표현 아래와 같이 5와 사칙연산만으로 12를 표현할 수 있습니다.5를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4입니다.이처럼 숫자 N과 number가 주어질

velog.io

chaegil15 (코라닝) - velog

 

chaegil15 (코라닝) - velog

 

velog.io

 

흥미롭고 재미있게 개인사이트를 잘 개설해 놓은 것 같다.

 

[Oracle] 오라클 UPDATE 방법 및 노하우 정리 (데이터 수정) (tistory.com)

 

 

 

[Oracle] 오라클 UPDATE 방법 및 노하우 정리 (데이터 수정)

오라클에서 테이블의 값을 수정하기 위해서는 UPDATE 문을 사용하면 된다. WHERE 절에 해당하는 행이 여러 개인 경우 한 번에 여러 건의 행이 SET 절의 값으로 변경된다. UPDATE 문은 시스템 운영 시 자

gent.tistory.com

공부한 내용이 잘 정리되어 있따

 

http://pythontutor.com/visualize.html#mode=edit

 

Python Tutor - Visualize Python, Java, JavaScript, C, C++, Ruby code execution

Write code in Python 3.6 Python 2.7 Java 8 JavaScript ES6 C (gcc 9.3, C17 + GNU extensions) C++ (g++ 9.3, C++20 + GNU extensions) C (gcc 4.8, C11) [older but more stable] C++ (g++ 4.8, C++11) [older but more stable] TypeScript 1.4 [unsupported] Ruby 2.2 [u

pythontutor.com

파이썬 비쥬얼라이즈 시뮬레이션 프로그램

for문 while문 이해 안갈때 참고하기

 

앱/웹 개발 외주 전, 꼭 알아야 할 IT 용어 - 한 장 정리!ㅣ캐스팅엔 (castingn.com)

 

앱/웹 개발 외주 전, 꼭 알아야 할 IT 용어

IT (개발) 초보자들은 꼭 알아야 할 IT 용어/언어를 정리했습니다. 필수 용어를 알면 업무 효율성, 생산성이 올라갑니다.

www.castingn.com

용어정리나 실무정보 사이트

 

[Python] 파이썬 기본 자료형 : 문자형 ( String ) (tistory.com)

 

[Python] 파이썬 기본 자료형 : 문자형 ( String )

파이썬 기본 자료형 : 문자형 우리가 실생활에서 가장 중요하고 가장 많이 사용하는 것은 말입니다. 지금 이렇게 블로그에 글을 쓰고 있는 것 자체도 우리의 말을 옮기는 과정이죠. 개발에 거의

orangebluestyle.tistory.com

똑같은 티스토리인데 이렇게 왼쪽에 목차 뜨게 하는건 어떻게 하는걸까... 예쁘다 

'기타' 카테고리의 다른 글

김종민 블로그 + 알고리즘 관련 재밌는 책  (0) 2021.06.15
파이썬- 빅O  (0) 2021.05.23

1.리스트

[ 요소, 요소, 요소, element,]

2.리스트 접근 연산자 이중으로 사용. 인덱스 두번 이용하기

#list[-4]는 False 인데, bool타입이기 때문에 읽을수 없다.

  TypeError: 'bool' object is not subscriptable

#list[0]은 222인데 숫자이기 때문에 읽을수 없다. 반면 list[1]은 문자열이기 때문에 부분적으로 index읽을 수 있다.

  TypeError: 'int' object is not subscriptable

 

3.list연산자: 연결(+) 반복(*) len():길이함수

                요소추가 append(**중요함)  insert extend

 

 리스트명.append(요소)     #뒤쪽에만 추가 가능

 리스트명.insert(위치(인덱스), 요소)   #아무위치나 지정하여 추가 가능

 리스트명.extend(여러요소 리스트도 가능)

 

4. 리스트 연결연산자 +와 요소추가의 차이. 

연결연산자: 비파괴적 (원본에 아무 영향을 주지 않음)

요소추가: 파괴적(원본 출력시 변형이 발생 append() insert() extend())

 

#비파괴적으로 자료 사용하는것이 편리하다

 

5. 리스트: 인덱스로 제거하기 del, pop()

  del.리스트명[인덱스]

  리스트명.pop(인덱스)   #()안에 매개함수 아무것도 입력하지 않으면 -1로 간주. 마지막요소를 제거함

 

6. 리스트: 값으로 제거하기 remove() #하나만 제거. 중복으로 제거하려면 while 필요

  리스트.remove(값)

7. 리스트: 모두제거하기 clear()

  리스트.clear()

8. 리스트 내부에 있는지 확인하기: in/not in 연산자

  값 in 리스트

9. for 반복문 

10. 확인문제: 리스트 안의 값을 홀수 짝수 나누기, 자릿수 구하기

#리스트 안의 숫자들은 int 타입이므로 str()로 문자열로 변형후 len()함수를 이용하여 자릿수를 구한다.

 

 11. 확인문제

12. 확인문제

#[1,4,7] [2,5,8] [3,6,9]의 규칙을 찾아본다.

3씩 차이가 난다. 

3으로 나눴을때 나머지가 같다.

최솟값인 1은 3으로 나눌수 없으므로 (num+2) 보정으로 3보다 큰숫자로 보정해준다.

 

 

 

 

 

1.식별자(identifier): 변수나 함수() 이름붙이기 

 snake_case: :소문자 시작, 언더바로 구분 : 함수 or 변수

 CamelCase : 대문자 시작, 대소문자로 구분 : 클래스

 

2.키워드인지 확인하기

import keyword

print(keyword.kwlist)

     

(궁금한 키워드) 

     lambda:

     raise:

     yield:

     

3.error

SyntaxError: 구문에러 보통 () : 

 

4. 문자열 연산자 ( 연결연산자(+), 반복연산자(*), 선택연산자[], 범위선택연산자[ : ] )

[] 인덱싱: 문자열의 특정 위치에 있는 문자를 참조함

 [ : ] 슬라이싱: 문자열의 일부를 추출. 슬라이싱하더라도 원본은 변하지않음

 

5. 숫자연산자 ( + - * / // % **)

6. 복합대입연산자 (+= -= *= /= %= **=)

7. input() : 문자열 타입으로 받는다. 숫자를 받으려면 식별자= int(input())로 입력할것

  캐스트(cast): 문자열은 숫자로 변환

8. swap(스왑) : 변수교체

>>>print(a,b)   

>>>a,b= b,a 

>>>print(a,b)

 

9.format()

>>>string_a="{}".format(10)

>>>print(string_a)

10

 

 

>>>string_b="{} {} {}".format(1,"문자열", True)  #여러가지 자료형 가능

>>>print(string_b)

1, 문자열, True

 

 

>>>string_c="{} {} {}".format(1,Fasle)   #index에러

>>>print(string_c)

IndexError : {}갯수가 format() 안의 매개변수보다 많아서

 

 

 

>>>output_a="{ :+d}".format(55)  #양수

>>>output_b="{ :+d)"format(-55)   #음수

>>>output_c="{ : d}".format(55)   #양수 부호 공백

>>>output_d="{ : d}".format(-55) #음수 부호 공백

 

>>>print(output_a)

>>>print(output_b)

>>>print(output_c)

>>>print(output_d)

+55

-55

 55  

-55

 

 

 #의미없는 소수점 제거

>>>output_l=55.0

>>>output_m="{:g}".format(output_l)  # { :g} 실수의 소수점아래 0 제거

>>>print(output_l)

>>>print(output_m)

52.0

52

 

10.문자열 양옆의 공백제거 strip() : strip 또는 trim 활용

11.문자열의 구성파악: is OO():

>>>isidentifier(): 문자열이 식별자로 사용가능한가

True/ False

 

12.문자열찾기 find():  rfind():오른쪽부터 찾기

>>>output_a="안녕안녕하세요".find("안녕")

>>>print(output_a)

>>>output_b="안녕안녕하세요".rfing("안녕")

>>>print(output_b)

0

2    

 

13. in 연산자: True/False로 나타냄

>>>print("안녕 in 안녕하세요")

True

 

 

14.문자열 자르기 split():

>>>a="10 20 30 40 50".split(" ") #괄호 안 공백으로 잘라서 콤마(,)로 구분

>>>print(a)

[10, 20, 30, 40, 50]    #split은 list[]로 출력

 

15. 비교연산자( == != < > <= >= <a<): True False로 출력

     논리연산자( not and or): True False로 출력

 #단항연산자: 음수양수부호 ex)+10

  이항연산자: 대부분의 연산자 ex)10+10

 

16. if 조건문

    import datetime

    now=datetime.datetime.now()   #현재 시간 날짜 계산

  

#단축키

shift+tab: 여러줄의 indent(들여쓰기) 제거

 

17. 계절구분 프로그램 import datetime를 이용

 

 

18. 짝수 분류 프로그램 (%연산자 이용하지 않고)

 

19. if else 구문은 if if 코드보다 2배더 효율적이다. 조건비교를 한번만 하면 되므로

20. if elif 구문 위에서 아래로 흐르면서 이전 조건이 맞지 않을때 넘어오는 형식. 위에서 제외된 조건은 다시 검사할 필요없음  ( 학점 분류 코드를 작성)

 

score= int(input("학점 입력 "))

if score >= 90:         
    print("A")
elif score>=80:    #굳이 80 <=score <90이라고 적을 필요 없음
    print("B")
elif score>=70:
    print("C")

 

 

20. False로 변환되는 값: None, 0, 0.0, 빈 컨테이너(empty)

#while=1: 이라고 조건문에 주는 것처럼 False로 변환되는 값들도 알아 놓을 것 

 

21. pass: 전체골격을 잡아놓고 비워둔상태. 곧 개발하겠음의 의미

    나중에 pass처리한 부분을 까먹지 않기위해 raise NotImplementError 강제발생 가능

 

num=int(input("정수 "))
        
if num>0:
    raise NotImplementedError
else:
    pass

 

22. 중첩 if문에서 두번째 if문은 거짓일때

 

x=10
y=2

if x>4:
    if y>2:      #두번째 if문에서는 거짓 
        print(x*y)
else:
    print(x+y)

 

:아무것도 출력되지 않음

 

 

23. if문을 이용하여 태어난 연도를 입력받아 띠를 출력하는 프로그램 작성

 

+ Recent posts