PS 공부 12

[이것이 코딩테스트다 with 파이썬] chap5 DFS/BFS 음료수 얼려 먹기

N*M 크기의 얼음틀 구멍이 뚫려있는 곳은 0 칸막이인 곳은 1 연결되서 얼어져서 나오는 아이스크림의 개수는? # 입력 n, m = map(int, input().split()) ice=[] for i in range(n): ice.append(list(map(int, input().split()))) def find_zero(arr): for i,v in enumerate(arr): for j,k in enumerate(arr[i]): if k == 0: return i,j return -1,-1 count = 0 move = [[1,0],[-1,0],[0,1],[0,-1]] def find_icecream(board, x, y): if x =n or y=n : return False..

PS 공부 2024.03.22

[이것이 코딩테스트다 with 파이썬] chap4 구현. 게임 개발

게임판이 n*m 정사각형 각 칸은 육지 혹은 바다 캐릭터는 동서남북 중 하나를 바라봄 0 1 2 3 0 1 2 3 이런 구조의 게임판 형태 캐릭터의 행동 매뉴얼은 다음과 같다 1. 현재 위치, 현재 방향을 기준으로 반시계 방향 90도 방향부터 갈 곳을 정함 2. 그 방향에 가보지 않은 칸이 존재하면 회전 후 한칸 전진 3. 없으면 회전 수행 후 1번으로 복귀 4. 네 방향 모두 이미 가봤거나 바다로 되어 있으면 방향 유지 후 한 칸 뒤로 이동 후 1번으로 복귀 5. 이 때 한 칸 뒤가 바다라 이동 불가면 멈추기 맵이 입력되고 0이면 육지 1이면 바다 둘째줄에 캐릭터의 좌표와 바라보는 방향이 공백으로 구분되서 주어짐 0123 순서대로 북동남서 # index 순으로 북동남서 dx = [0,1,0,-1] dy..

PS 공부 2024.03.22

[이것이 코딩테스트다 with 파이썬] chap4 구현. 왕실의 나이트

8*8 좌표 평면에서 나이트가 움직인다 나이트는 2가지 경우로 이동한다 1. 수평으로 두 칸 이동, 수직으로 한 칸 이동 2. 수직으로 두 칸 이동, 수평으로 한 칸 이동 8*8 평면에서 나이트의 위치가 주어졌을 때, 나이트가 이동할 수 있는 경우의 수를 출력 a b c d 1 2 3 4 이런식으로 생겼고, a1과 같이 입력이 주어졌을 때, 이동할 수 있는 경우의 수를 출력 일단 다 뚫려있으면 총 8가지 경우가 가능 좌2위1, 좌2아래1 우2위1, 우2아래1 좌1위2, 좌1아래2 우1위2, 우1아래2 걍 다 검사해라 task 1. a~h까지 입력받았을 때 숫자로 변환 2. 8가지 경우에서 좌표가 0~7 범위 이내면 가능 그걸 벗어나면 count가 되지 않게 구현 dir = [[-2,-1],[..

PS 공부 2024.03.22

백준 5일차 : 백준 2775번 부녀회장이 될테야

https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 이 문제는 저번에 풀었던 피보나치 함수와 비슷한 문제에요! 테스트 케이스가 14보다 작다고 주어져있으니, 미리 값을 빠르게 구해 배열에 넣어놓고 이를 가져와 출력하면 되는 간단한 문제였습니다!! 약 1년전에 아 이거 어케 풀지 하고 여러번 넘겼던 기억이 있는데.. 이렇게 쉽게 풀리다니 실력이 늘은 것 같아서 기분이 좋네요!! 앞으로 더 열심히 해볼게요! 어제는 지원하고자 하는 동아리에 사전 과제가 있어서 그거를 푸느라 백준을 못 풀었어요..

PS 공부 2023.02.23

백준 4일차 : 백준 1316번 그룹 단어 체커

작심삼일을 넘어서서 4일차네요! 앞으로도 열심히 달려볼게요!! https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 이번 문제는 알고리즘 작성을 넘어갈게요.. 해보려고 했는데 뭔가 마땅한 방법이 떠오르지 않아서 중구난방으로 푼듯 합니다..ㅠ 대충 설명을 해보면 group이라는 함수를 만들어서 char 배열과 char을 받아서 이 문자만 봤을 때, group이 되는지 안되는지를 return하게 했습니다. 그리고 main..

PS 공부 2023.02.21

백준 3일차 : 백준 1003번 피보나치 함수

https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 정말.. 어려웠어요..ㅠㅠ 0.25초라는 시간제한때문에 일반적으로 풀면 안되고 DP를 사용해야 하더라고요! 저는 이 문제 공부하면서 DP에 대해서 처음 배웠어요 이렇게 성장하는 거겠죠..! DP가 간단하게 말하면, 전에 사용했던 값이 있다면 이를 저장. 재사용해서 탐색 시간을 많이 줄이는 방법인 것 같아요! 저도 자세히는 모르겠지만.. 틀렸다면 말해주세요~! 저도 처음에는 그냥.. 평범한 피보나치겠거니하고 재귀를 맘껏 돌려서 했더니 무조건 시간초과 뜨더라고요..! 배열을 사용해서 전에 사용했던..

PS 공부 2023.02.20

백준 2일차 : 백준 11866번 요세푸스 문제 0

https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 오늘은 11866번 요세푸스 문제를 풀었어요 자료구조 분야의 문제라 큐를 사용하는 문제였습니다 크게 어렵지 않게 푸실 수 있을 것 같아요!! 자바에서 큐를 처음 사용해보는거라 기초 메소드들도 같이 공부했어요 선입선출의 구조만 이해하시면 될 것 같아요 마치.. 줄서기처럼요! 원이라서 뺑글뺑글 돌면서 k번째 수를 제거하는겁니다! 오늘도 열심히 문제를 이해하고.. 알고리즘을 만들었어요 분명..분명 맞게 작성했는데 뭔가 오류가 생겨서 봤더니.. 입력한 숫자를 toCharArray로 만들어..

PS 공부 2023.02.19

백준 0일차 : 백준 2839번 설탕 배달 (java11)

- 네이버 블로그에 썼던 글 그대로 백업이에요! https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 솔직히 검색한번 해봄..ㅎㅎ 좀 어렵더라구요~! ​ 오늘도 알고리즘부터 짰다 코드짜기 전에 무조건 해놔야됨 아무생각없이 들어가면 진짜 풀기 힘든 것 같다 하나하나 정리해서 어떻게 처리할지 머리속에 생각을 해놓고 구현하기~! ​ ​ 오늘도 다행히 제출한번만에 끝냈다 낼 약속이라 오늘 새벽에 한건데 졸려죽기 전에 끝~! 근데 이게 왜 자료구조 공부용인진 모르겠다!..

PS 공부 2023.02.18

백준 0일차 : 백준 10845 큐 (java11)

- 네이버 블로그에 썼던 글 그대로 백업이에요! https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 1일차에 무려 2문제나 푸는 패기 ㄸ 아까에 비해 비교적 쉽게 풀었다. ​ ​ 코드 짜기 전에 알고리즘부터 만들었다. ​ 큐는 앞과 뒤가 구별되어 있기 때문에 맨 앞 원소의 index를 front, 가장 앞의 비어져있는 원소의 index를 rear라고 지칭한 후 시작했다. 배열로 구현했고 문제의 입력이 최대 10000줄이라고 했기 때..

PS 공부 2023.02.18

백준 0일차 : 백준 9012 괄호문제 (java11)

- 네이버 블로그에 썼던 글 그대로 백업이에요! https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 컴공 전공자가 되기 위한 민영이의 고군분투.. ​ 백준 문제 풀기 1일차 시작합니다. ​ 현재 티어 실버 3. 골드가 될때까지.. ​ 혹시나 포폴이 될수도 있지 않을까..? 싶은 마음에 작성하는것도 있으니 관심없는 블로그 친구들은 읽지 않아도 무방 ​ 이거 안써도 다 안읽을거 안다. ​ 괄호문제는 스택 사용문제 자료구조..

PS 공부 2023.02.18