본문 바로가기

구현20

[Python] 백준 17140번 : 이차원 배열과 연산 https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net 💡 문제 풀이 구현 문제이다. R 연산과 C 연산은 대상만 다를 뿐 똑같은 로직을 가진다. 따라서, 배열의 열과 행을 바꿔줌으로 추가적인 로직 구현을 할 필요가 없다. 연산을 하다 보면 처음 크기보다 작아져서 오류가 뜨는 경우가 있다. 예외처리를 통해서 그런 경우는 넘어가도록 하게 해야 한다. ✔️ 느낀 점 zip() 함수를 사용하면 정말 2차원 배열을 쉽게 뒤집을 수 있다. 이번 문.. 2023. 3. 8.
[Python] 백준 16234번 : 인구 이동 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 💡 문제 풀이 BFS를 기반으로 한 구현 문제이다. 문제에서 요구하는 답은 인구 이동이 몇 번 일어났는지가 아니라 인구 이동이 일어난 날짜이다. 따라서, 단순하게 몇번 실행되었는지 보다 날짜를 기준으로 카운트하는 게 중요하다 ✔️ 느낀 점 중요한 점을 놓쳐서 코드를 깨작깨작 계속 수정햇던 문제이다. 시간 복잡도는 생각한대로 해결되었다! 💻 코드 import sys ; input = .. 2023. 3. 6.
[Python] 소프티어 : 플레이페어 암호 https://softeer.ai/practice/info.do?idx=1&eid=804&sw_prbl_sbms_sn=162388 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 💡 문제 풀이 전형적인 구현 문제이다. key에 맞춰서 5x5 짜리 판을 초기화해 주고, 특정 알파벳의 위치를 저장한 테이블을 초기화한다. 이후 2자리로 잘라준다음 요구사항에 맞춰서 구현하면 된다. 주의할 점은 X가 단 하나 남았을 경우 XX가 만들어진다는 점과 J를 사용하지 않는다는 점이다. ✔️ 느낀 점 크게 어려울 것 없는 문제였다. 💻 코드 import sys ; input = sys.stdin.readline from collections import deque ALPHABET = ".. 2023. 3. 5.
[Python] 백준 14499번 : 주사위 굴리기 https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 💡 문제 풀이 기본적인 구현 문제이다. 요구사항에 맞게만 구현하면 된다. ✔️ 느낀 점 최적의 코드를 짜고 싶었다. 하지만 알고리즘은 시간과의 싸움 아닐까..? 그냥 구현하는 게 맞는지 잘 모르겠단 고민이 들었다. 💻 코드 import sys ; input = sys.stdin.readline UP, DOWN, LEFT, RIGHT.. 2023. 3. 2.
[Python] 백준 15686번 : 치킨 배달 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 💡 문제 풀이 기본적인 구현, DFS 문제이다. ✔️ 느낀 점 💻 코드 import sys from itertools import combinations input = sys.stdin.readline N, M = map(int, input().split()) board = [list(map(int, input().split())) for _ in range(N)] chick.. 2023. 2. 27.
[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.