본문 바로가기 메뉴 바로가기

jenlog

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

jenlog

검색하기 폼
  • All (81)
    • algorithm (71)
      • baekjoon (31)
      • swea (30)
      • programmers (9)
    • JS (1)
    • Vue.js (2)
    • React (2)
    • * etc (5)
  • 방명록

algorithm (71)
[백준] 1764. 듣보잡 / python 파이썬

🚩 자료구조, 문자열, 정렬 thinking 중복없이 처리하기 위해 듣도 못한 사람과 보도 못한 사람을 각각 set에 넣은 후, 교집합을 구해 정렬했다. 파이썬 set의 특징 덕분에 쉽게 해결했다. 코드 N, M = map(int, input().split()) set_N = set() # 듣도 못한 사람의 명단을 담을 set set_M = set() # 보도 못한 사람의 명단을 담을 set for _ in range(N): set_N.add(input()) for _ in range(M): set_M.add(input()) res = sorted(list(set_N & set_M)) # 교집합을 구한다음 정렬 print(len(res)) for ele in res: print(ele) 한줄평 채점하는데..

algorithm/baekjoon 2021. 6. 2. 19:08
[백준] 1697. 숨바꼭질 / python 파이썬

🚩 그래프탐색, BFS thinking 1. fail (메모리초과) 처음 풀었을때는 N과 K의 범위가 커서 방문체킹을 인덱스로 접근하는 리스트로 안 만들고 딕셔너리로 만들었는데 메모리 초과가 났다. 구글링해보니, 이렇게 하면 방문했던 노드도 큐에 다시 넣어져서 그렇다고 한다. ⭐ 메모리 초과 발생 이유 : 과거에 했던 값을 계속 처리하기 위해 큐에 값을 넣는 것 때문에 발생함. ex. 10에서 갈 수 있는 노드: 9, 11, 20. but, 10까지 갈 수 있는 방법 엄청 많음. (9->10, 11->10, 5->10 ... ) 2. success 😀 방문체킹 리스트를 인덱스로 접근해 100,001 개의 칸으로 만들어줬다. 칸이 10만개 있어도 아무런 상관없다. 괜히 숫자 커지고 for문 많아지면 쫄게된..

algorithm/baekjoon 2021. 6. 2. 19:03
[백준] 1676. 팩토리얼 0의 개수 / python 파이썬

🚩 수학 thinking 10이 되려면 2x5이므로 2와 5의 개수 중 작은것을 구하면 된다. 근데 무조건 5의 개수가 2보다 더 작게 나오기 때문에 5가 나온 횟수만 구하면 된다. 5가 나온 횟수는 계속해서 5로 나눈 몫의 합이므로 while문으로 구성했다. 코드 N = int(input()) t = N - N % 5 # input숫자를 5로 나눈 나머지로 빼서 5의 배수로 만들어준다 ans = 0 while t >= 5: # 5로 계속해서 나누어주기 위한 조건설정 ans += t // 5 # 5로 나눈 몫을 더한다 t //= 5 print(ans) 한줄평 이 문제는 걍 수학 문제 같았음. . .

algorithm/baekjoon 2021. 6. 2. 18:50
[swea] 5209. 최소 생산 비용 / python 파이썬

문제 thinking 아주 전형적인 백트래킹 & dfs 문제이다 ! 모든 경우를 전부 따져보되, 이미 답이 안되는 경우(값이 기존 결과값보다 큰 경우)는 바로 중단하면 된다. 열과 행이 겹치면 안되므로 dfs라는 함수의 인자로 행(i)을 넣어, 행을 증가시키며 경우를 체킹했고, visited 라는 리스트를 만들어 열의 방문여부를 확인하도록 코드를 구성했다. 코드 def dfs(i, tmp): # 행, 현재 타임 합 global res if tmp >= res: return if i == N: res = min(tmp, res) return for j in range(N): if not visited[j]: visited[j] = 1 dfs(i+1, tmp+a[i][j]) visited[j] = 0 T =..

algorithm/swea 2021. 5. 5. 02:29
[swea] 5208. 전기버스2 / python 파이썬

문제 thinking 정류장별 배터리 용량을 리스트로 만든 후, 1번 정류장부터 돌면서 교환횟수를 구해 비교했다. 최소한의 교체횟수를 묻고 있으므로 이전횟차까지의 결과값보다 같거나 크면 return 시키도록 함수를 구성했다. 함수의 인자로 현재위치(i), 최대로 갈 수 있는 범위(max_i), 해당타임 교환횟수(cnt)를 두어 일단 갈 수 있는 만큼 최대로 가보면서 cnt 값을 비교했다. + 교환횟수처럼 계속 변하는 값을 함수의 인자로 두면 코드짜는게 더 쉽다. 굿 ! ! ! 코드 def dfs(i, max_i, cnt): # 현재위치(인덱스), 최대로 갈 수 있는 범위, 해당타임 교환횟수 global res if cnt >= res: return if max_i >= N: res = min(cnt, r..

algorithm/swea 2021. 5. 5. 02:21
이전 1 ··· 3 4 5 6 7 8 9 ··· 15 다음
이전 다음
글 보관함
TAG
  • merge 에러
  • 20056 마법사 상어와 파이어볼
  • dp
  • 17406 배열돌리기4
  • 보석쇼핑
  • 기지국설치
  • 21609 상어 중학교
  • 2579 계단오르기
  • git 미러링
  • 브루트포스
  • 2018 카카오 공채
  • 프로그래머스
  • 영어끝말잇기
  • 백준
  • dfs
  • 알고리즘
  • 삼성기출
  • 20057 마법사 상어와 토네이도
  • react
  • Python
  • swea
  • merge에러
  • 파이썬
  • 삼성코테
  • BFS
more
최근에 올라온 글
Total
Today
Yesterday
최근에 달린 댓글
«   2025/07   »
일 월 화 수 목 금 토
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

jennnn.tistory.com

티스토리툴바