본문 바로가기

IT To do and To was

22년 11월 27일_알고리즘, SQL, DFS/BFS 이해하기, 토스 틀 잡기

728x90
반응형

일요일[요즘 일이 많았어염]

 

매일 쓰려했던 블로그를 못올렸던 건 가까운사람과의 다툼과 컨디션 난조,,.. 또.. 도서관 난방의 부재..

새로운 사람과의 만남땜시.. 이상 변명이였슴다

 

1. 알고리즘

2. SQL

3. 이것이 DFS/BFS  이해하기

4. 토스 

 

 

1>

제곱수 판별하기

def solution(n):
    answer = 2
    for i in range(1, n+1):
        if i*i == n :
            answer = 1
    
    return answer

 

다른사람이 한 풀이

def solution(n):
    return 1 if (n ** 0.5).is_integer() else 2

is_integer() 은 정수인지를 판별

 

모음제거

def solution(my_string):
    answer = ''
    str = list(my_string)

    for i in str:
        if i in ['a','e','i','o','u'] :
            continue
        else:
            answer += i
    return answer

다른사람이 한 풀이

def solution(my_string):
    vowels = ['a','e','i','o','u']
    for vowel in vowels:
        my_string = my_string.replace(vowel, '')
    return my_string

숨어있는 숫자의 덧셈

def solution(my_string):
    answer = 0
    for i in my_string:
        if i in ['0','1','2','3','4','5','6','7','8','9']:
            a = int(i)
            answer += a

    return answer

다른사람이 한 풀이

def solution(my_string):
    return sum(int(i) for i in my_string if i.isdigit())

변수명.isdecimal()

변수명.isdigit()

변수명.isnumeric()

=> 주어진 문자열이 숫자로 되어있는지 검사하는 함수

 

n의 배수 구하기

def solution(n, numlist):
    answer = []
    for i in numlist:
        for j in range(i+1):
            if n * j == i:
                answer.append(i)
    return answer

다른사람이 한 풀이

def solution(n, numlist):
    return list(filter(lambda v: v%n==0, numlist))

filter(조건함수, 순회가능한 데이터)

조건함수에 순회가능한데이터 argument가 있으면 해당 값을 반환

 

lambda 매개변수 : 표현식

 

개미군단

def solution(hp):
    answer = 0
    while 0 < hp :
        answer += hp//5
        hp = hp % 5
        answer += hp//3
        hp = hp % 3
        answer += hp
        hp = -1

    return answer

다른사람의 풀이

def solution(hp):
    answer = 0
    for ant in [5, 3, 1]:
        d, hp = divmod(hp, ant)
        answer += d
    return answer

출처: https://codingdog.tistory.com/entry/%EB%AA%AB%EA%B3%BC-%EB%82%98%EB%A8%B8%EC%A7%80%EB%A5%BC-%EA%B5%AC%ED%95%A0-%EC%88%98-%EC%9E%88%EB%8A%94-%ED%8C%8C%EC%9D%B4%EC%8D%AC-divmod-%ED%95%A8%EC%88%98%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B4%85%EC%8B%9C%EB%8B%A4

 

폰켓몬

def solution(nums):
    answer = len(list(set(nums)))
    # 같은 숫자는 하나만 get
    if answer > len(nums)/2:
        answer = len(nums)/2
    return answer

다른사람이 한 풀이

def solution(ls):
    return min(len(ls)/2, len(set(ls)))

min함수로 비교가 아닌 최솟값을 출력

 

2>

취소되지 않은 예약 조회하기

SELECT AP.APNT_NO, PA.PT_NAME, PA.PT_NO, AP.MCDP_CD, DOC.DR_NAME, AP.APNT_YMD FROM PATIENT PA
JOIN  APPOINTMENT AP
ON AP.PT_NO = PA.PT_NO
JOIN DOCTOR DOC
ON DOC.DR_ID = AP.MDDR_ID
WHERE AP.MCDP_CD LIKE "CS" AND AP.APNT_CNCL_YMD IS NULL AND DATE_FORMAT(AP.APNT_YMD, "%Y-%m-%d") = "2022-04-13"
ORDER BY AP.APNT_YMD

3>

음료수 얼려먹기

설명 : N  x M 크기의 얼음 틀이 있다. 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다. 구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주한다. 이때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하시오

 

답안

n, m = map(int, input().split())

graph = []
for i in range(n):
	graph.append(list(map(int, input())))
   
# DFS로 특정한 노드를 방문한 뒤에 연결된 모든 노드들도 방문
def dfs(x, y):
	#주어진 범위를 벗어나는 경우에는 즉시 종료
    if x <= -1 or x >=n or y<= -1 or y>=m:
    	return False
    if graph[x][y] == 0:
    graph[x][y] = 1
    # 상, 하, 좌, 우의 위치도 모두 재귀적으로 호출
    dfs(x -1, y)
    dfs(x, y-1)
    dfs(x+1, y)
    dfs(x, y+1)
    return True
return False

result = 0

for i in range(n):
	for j in range(m):
    	#현재 위치에서 DFS 수행
        if dfs(i,j) == True:
        result += 1

print(result)

 

 

4>

기출유형특강

Question3, 4 Describe 

45초 준비 30초 발화

 

사진을 보고 말하는 순서를 선택

중심묘사

예시 )

In a office

A woman on the left

talking to two women

has short blond hair

The old woman 

standing in the middle

the other woman leaning against the wall both of them listening 

In the background, an unit fireplace, some picture frames are placed the room mostly white the floor blue 

everon seems peaceful

 

n월 (진척도)

알고리즘 공부 3%

SQL 80%

정보처리기사 0%

토스 1%

 

// yesterday wished to today list.

. 토스 강의 듣기_https://class.champstudy.com/HLec/hcms_lecture.php_✔️

. 프로그래머스 풀기 (알고리즘)_✔️

 

tomorrow wish list

. 스트레칭 및 운동 10분이라도 하기

. 월요일인 거 잊지 말기

. 면접 준비하기

. 점심약속 가기

. 프로그래머스 알고리즘 풀기

. SQL 다 풀기(프로그래머스 all level)

. 이것이 152p까지 수행

. 3개정도 넣기

 

 

728x90
반응형