본문 바로가기

전체 글411

[Python] 소프티어 : 이미지 프로세싱 https://softeer.ai/practice/info.do?idx=1&eid=627&sw_prbl_sbms_sn=156768 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 💡 문제 풀이 아주 가벼운 그래프 탐색 문제이다 (BFS) BFS로 풀었고 DFS도 가능하다. ✔️ 느낀 점 많이 그래프 탐색을 풀어봤다면 어렵지 않은 문제이다. 💻 코드 import sys input = sys.stdin.readline moves = [(1,0), (0,1), (-1,0), (0,-1)] h, w = map(int, input().split()) board = [list(map(int, input().split())) for _ in range(h)] q = int(inpu.. 2023. 2. 20.
[Python] 프로그래머스 : 기둥과 보 설치 https://school.programmers.co.kr/learn/courses/30/lessons/60061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제 풀이 구현 문제이다. 제거하거나 삭제했을 때 정상적으로 잘 연결되어 있는지 확인하면 된다. 주어진 조건만 잘 맞추면 된다. ✔️ 느낀 점 시간이 충분히 주어졌고, 입력은 1000을 안 넘어서 시간이 충분한데 너무 어렵게 구현하려다가 시간을 많이 잡아먹었다. 충분히 쉽게 풀 수 있었는데 아직 테크닉이 많이 부족한 것 같다. 💻 코드 def check(answer): for x, y, a i.. 2023. 2. 19.
[Python] 소프티어 : 로드 밸런서 트래픽 예측 https://softeer.ai/practice/info.do?idx=1&eid=629&sw_prbl_sbms_sn=156249 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 💡 문제 풀이 구현 문제이다. 노드에 접근하는 순서가 존재하고 존재에 맞춰서 요청을 처리해 주면 된다. 1000건의 요청이 들어왔고, 루트 밸런서에 3, 5, 6번 밸런서가 연결되어 있으면 각 밸런서에 공통적으로 1000 // 3건 만큼 요청을 수행할 것이고 순서대로 진행되야 하니 1000 % 3 만큼 각 노드에 순서대로 1만큼 추가해 주면 된다. ✔️ 느낀 점 문제가 이해 안 가서 오래 걸렸고 중간에 순서가 있다는 걸 알아채지 못해서 시간을 많이 소비하였다. 그냥 재귀적으로 풀면 무조건 시간.. 2023. 2. 19.
[Python] 백준 10986번 : 나머지 합 https://www.acmicpc.net/problem/10986 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net 💡 문제 풀이 구간합을 빙자한 수학 문제이다. ✔️ 느낀 점 2트하고 시간복잡도를 도저히 개선하지 못할 것 같아서 포기하고 넘어갔다. 💻 코드 import sys input = sys.stdin.readline n, m = map(int, input().split()) arr = list(map(int, input().split())) prefixS.. 2023. 2. 14.
[이펙티브 자바] 아이템 18 : 상속보다 컴포지션을 사용하라 🎯 학습 목표 상속과 캡슐화 컴포지션이란? (feat. DI) 📌 상속보단 컴포지션 이번 아이템에서 상속의 문제점과 왜 컴포지션을 사용해야 하는지 이야기하고 있다. 우선 상속을 지양해야하는 이유를 알아보자. 🧐 상속과 캡슐화 책에서는 상속이 캡슐화를 깨뜨린다고 말한다. 하지만 나는 '상속이 캡슐화를 깰 수도 있다'라는 말이 맞다고 생각한다. 상속의 문제점은 다음과 같다. 상속은 결합도를 크게 높여 유연성을 떨어트린다. Java에서는 모호성 때문에 다중상속을 지원하지 않는다. (다이아몬드 문제) 이런 문제들이 존재함에도 코드의 중복을 줄이는 강력한 수단임은 틀림없다. 따라서, 정말로 'is - a" 관계일 때만 상속을 사용해야 한다. 👀 컴포지션이란? (feat. DI) 한 객체에서 다른 객체를 포함하는 .. 2023. 2. 14.
[Python] 백준 6603번 : 로또 https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 💡 문제 풀이 백트래킹 문제이다. 라이브러리를 사용해서 풀었다. ✔️ 느낀 점 계속 틀렸다고 나오길래 뭐가 문제인가 했더니 print("")을 해서 틀렸었다. 💻 코드 from itertools import combinations import sys input = sys.stdin.readline while True: tmp = list(input().split()) if tmp[0] .. 2023. 2. 14.