토마토의 개발일지
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • Development (144)
      • Languege (39)
        • Java & Spring (27)
        • C# & ASP.NET (5)
        • JavaScript (2)
        • Kotlin (5)
      • DB (0)
        • Oracle (0)
      • Study (72)
        • 네트워크 (3)
        • 이펙티브 자바 (41)
        • 우아한 테크 코스 (7)
        • Next Step (3)
        • Certificate (5)
        • Side Proejct (6)
      • Error (18)
        • 개발환경 (10)
        • 트러블슈팅 (6)
      • Algorithm (12)
      • 개발환경 (1)
      • 회고 (2)
  • 홈
  • 태그
  • 방명록
Algorithm

[프로그래머스] 완주하지 못한 선수 파이썬 문제 풀이

문제 풀이 : 1.딕셔너리를 이용해서 참여자의 수를 구해줍니다. 만약 dict1안에 동명이인이 존재하다면 1을 더해주고 아니라면 1을 추가해줍니다. 2. 위에 1번에서 구했던 참여자 중 완주자가 있다면 -1 시켜줍니다. 3.완주하지 못한사람 (key,val)에서 val이 0이 아닌사람이 있다면 return 시켜줍니다. 처음에는 count를 이용해서 간단하게 문제를 풀었는데 효율성 테스트에서 시간초과 되어 문제의 핵심인 해시(딕셔너리)를 이용하여 풀었습니다. 아래는 효율성 테스트에서 실패한 코드입니다. 알고리즘은 결과도 중요하지만 효율성이 가장 중요하다는걸 깨달았네요. 매일 하나씩 알고리즘 문제를 풀다가, 얼마 전 백준 100문제를 넘게 풀었더라구요.(어느덧 실버2) 항상 꾸준하게 문제를 풀다보면 프로그래..

2022. 3. 15. 15:56
Algorithm

[백준] 1920번 수 찾기 파이썬 문제 풀이

문제 고민 처음 이 문제를 봤을때는 간단하게 생각하고 쉽게 풀었습니다. 하지만 다른 알고리즘들이 그렇듯 시간초과 문제가 발생했었고, 한참 고민하다 이진탐색 알고리즘을 알게 되었습니다. 그래서 이진탐색 알고리즘에 대해서 공부를 하게 됐습니다. 이진탐색 알고리즘 해당 배열이 있을때 시작, 중간, 끝점을 정해두고 찾고자 하는값이 중간점보다 큰지 작은지 비교한다. 만약에 중간점보다 값이 작다면(2 혹은 3) 아래와 같은 그림으로 끝점은 중간점보다 1칸 작은값으로 이동하게 되고 시작점과 비교해 중간점을 구합니다. 만약 이때 중간점이 구해진다면 일반적인 순차 탐색이라면 최대 8번이 걸릴 수 있었던 과정을 2번의 탐색으로 구할 수 있게 되는 알고리즘입니다. 정리 시작점과 끝점을 구해주고 중간점을 구한다. Target..

2022. 3. 6. 23:00
Algorithm

[백준] 10845번 큐 파이썬 문제풀이

from collections import deque import sys que = deque() def push(X): que.append(X) def pop(): if len(que) == 0: return -1 return que.popleft() def size(): return len(que) def empty(): if len(que) == 0: return 1 return 0 def front(): if len(que) == 0: return -1 return que[0] def back(): if len(que) == 0: return -1 return que[-1] result = [] N = int(sys.stdin.readline().rstrip()) for _ in range(N):..

2022. 3. 1. 21:58
Algorithm

[백준]9012번 괄호 문제 풀이

T = int(input()) result = [] for _ in range(T): VPS = input() num = 0 for i in VPS: if num

2022. 3. 1. 21:35
Algorithm

[정렬] 이코테 QuickSort - 퀵정렬

퀵 정렬 기준 데이터를 설정하고 그 기준보다 큰 데이터와 작은 데이터의 위치를 바꾸는 방법 일반적인 상황에서 가장 많이 사용되는 정렬 알고리즘 중 하나 병합 정렬과 더불어 대부분의 프로그래밍 언어의 정렬 라이브러리의 근간이 되는 알고리즘 가장 기본적인 퀵 정렬은 첫 번째 데이터를 기준 데이터(Pivot)로 설정 퀵 정렬 동작 예시 [Step 0] 현재 피벗의 값은 '5'이다. 왼쪽에서부터 '5'보다 큰 데이터를 선택하므로 '7'이 선택되고 오른쪽에서부터 '5'보다 작은 데이터를 선택하므로 '4'가 선택된다. 이제 이 두 데이터의 위치를 서로 변경함 [Step 1] 현재 피벗의 값은 '5'이다. 왼쪽에서부터 '5'보다 큰 데이터를 선택하므로 '9'가 선택되고 오른쪽에서부터 '5'보다 작은 데이터를 선택하므..

2022. 2. 27. 21:48
Algorithm

1일 1 알고리즘 시작

알고리즘 공부를 학부 1학년 과정에서 잠깐 해보고 따로 공부를 한 적이 없었는데 요즘들어 알고리즘의 중요성이 더욱 느껴져 하루에 1문제씩 꾸준하게 공부하려 합니다. 블로그를 활용해서 공부하기 전의 나의 코드와 다른 사람의 코드를 보며 비교하고 공부할 예정입니다. 공부한 내용을 정리하려다 이것저것 블로그를 채우고 싶어지는 욕심이 생기네요!

2022. 1. 16. 17:52
  • «
  • 1
  • 2
  • »

공지사항

  • GitHub & WorkSpace

전체 카테고리

  • Development (144)
    • Languege (39)
      • Java & Spring (27)
      • C# & ASP.NET (5)
      • JavaScript (2)
      • Kotlin (5)
    • DB (0)
      • Oracle (0)
    • Study (72)
      • 네트워크 (3)
      • 이펙티브 자바 (41)
      • 우아한 테크 코스 (7)
      • Next Step (3)
      • Certificate (5)
      • Side Proejct (6)
    • Error (18)
      • 개발환경 (10)
      • 트러블슈팅 (6)
    • Algorithm (12)
    • 개발환경 (1)
    • 회고 (2)
애드센스 광고 영역
  • 최근 글
  • 최근 댓글

최근 글

최근댓글

태그

  • #구글 클라우드
  • #파이썬
  • #트러블슈팅
  • #spring boot
  • #이펙티브자바
  • #김영한 스프링
  • #우테코
  • #kotlin
  • #Java
  • #이펙티브 자바
  • #자바
  • #스프링부트
  • #effective java
  • #BOJ
  • #AWS
  • #김영한
  • #백준
  • #후기
  • #코틀린
  • #개발자
  • #제네릭
  • #TDD
  • #스프링
  • #saa
  • #spring
  • #객체지향
  • #도메인 주도 개발
  • #GCP
  • #백엔드
  • #클라우드
MORE

전체 방문자

오늘
어제
전체

블로그 인기글

Powered by Privatenote Copyright © 토마토의 개발일지 All rights reserved. TistoryWhaleSkin3.4

티스토리툴바