저저번주에 하다가 만 문제 풀려고 시도했는데 또 똑같은 에러… 인덱스 에러 왜 나는데… 어디서 나는 건지라도 말해달란 말이야나는 코드 이렇게 무식하게 긴데다가 에러도 나는데... 왜 구글링하면 다들 코드가 3줄밖에 안 나오는 거지 그 사람들 코드 봐도 모르겠구... 와
자기 분수도 모르고 실버 문제만 내리 도전하던 브론즈... 브론즈 1수준 문제를 풀어볼까 합니다.제가 고른 문제는 1652번 문제배열 써서 금방 풀 수 있을 거라고 생각했는데... 이 글을 작성하는 지금 벌써 2번의 실패를 맛 봄.일단 처음 작성한 코드이 코드의 문제점
오늘 풀어볼 문제는 백준 1297번 티비 실제 사이즈를 맞히는 문제 난이도 또 낮춰서 브론즈2... a^2 + b^2 = c^2 간단한 피타고라스 공식을 활용해서 풀어보고자 하여 아래와 같이 코드를 작성하였다.그런데 답이 틀렸다고 나왔다. 왜 그런가 하였더니 내가
오늘은 오전에 브론즈2 문제를 풀었기 때문에 비슷한 수준의 브론즈2 문제를 하나 더 풀어볼까 한다. 근데 시작부터 문제가 생겼다. 입력이 여러 줄에 걸쳐서 n과 k가 나온댔는데 입력 받은 만큼 반복적으로 저장하는 걸 까먹었다... 분명 배웠을 건데... 이런... 근데
오늘은 오랜만에 난이도를 다시 높여 실버4 수준의 문제를 풀어볼까 한다. 그러나 한 문제를 오랫동안 잡고 있을 자신이 없어서 정답 비율이 높은 문제로 골라 왔다.오늘 풀 문제는 1246번째 문제와 나는 근데 알고리즘을 풀 게 아니라 국어 공부를 해야 하는 걸까 문제가
이번에 골라본 문제는 실버4 수준의 1980번 문제 이름이 '햄버거 사랑'이라 끌렸다.ㅋㅋㅋㅋㅋㅋㅋ 누가 햄버거 쟁이...(알바 그만둔지 1년이 넘음 그냥 햄버거 좋아하는 사람임)아니랄까봐이 문제에서 중요한 점은바로 이 부분이다. 최대한 햄버거를 많이, 그러나 콜라는
오랜만에 알고리즘 문제를 풀고자 한다. 어떤 문제를 풀지 고민하던 도중, solved.ac에서 내가 푼문제들의 종류를 보여주는 그림을 보았다. 수학과 구현 관련 문제는 여럿 풀었으나 다른 유형의 문제들은 취약하다는 걸 깨달았다. 특히 그래프 관련 문제는 하나도 풀지
오늘은 기필코 해결한다...!!!!저번주에 풀면서 해결이 어려워 그래프에 대해 복습하였는데, 이 문제도 그래프라고 생각하고 접근하는 방식으로 생각해보고자 한다.이렇게 입력받은 녀석들의 각 노드를 '깊이 우선 탐색'이나 '너비 우선 탐색'으로 스택이나 큐를 활용하면 기존
9명의 키가 주어지는데 이 중 7명 키의 합이 100이 되는 경우를 구하고, 그 경우가 여러 개라면 1개만 오름차순으로 출력하는 문제.나는 이 문제를 해결할 때 9개에서 7개를 뽑아보고 더하는 경우를 모두 해보고 난 후, 100이 나오면 종료 후 출력하고자 하였다. 하
이렇게만 보았을 때는 어떤 문제인지 감을 잡지 못 하였다. 하지만 예제를 보고 이해할 수 있었다 주어진 배열 A가 비내림차순이 될 때 각 원소들이 가지는 인덱스 값들이 들어가는 배열을 만들라는 것.
주어진 좌표에서 y좌표를 기준으로 먼저 정렬하고, 같다면 x좌표를 기준으로 정려하는 간단한 프로그램이다.이전에 다시 복습해두었던 sort() key, lambda를 이용해 쉽게 풀이할 수 있다.coord.sort(key = lambda x : (x1, x0))이라는 코
처음에는 문제를 보고 어렵게 생각했다.각 자리 숫자를 보고 변경이 필요한 부분을 생각하고 위와 같이 짰는데 3434가 input으로 들어갈 경우 404라는 기이한 숫자가 출력되었다.나는 숫자를 하나씩 줄이면서 확인하면 시간복잡도 문제에 걸릴 거라고 생각하여 위와 같이
처음 작성한 코드는 위와 같다. 이중 for문을 이용하여 안테나 위치에서의 거리를 계산하고 매번 비교한 후 가장 거리가 작았을 때의 안테나 위치를 출력하도록 말이다. 하지만 이중 for문을 썼기에 당연히 시간복잡도에 문제가 있었다. 이 문제는 그리디 알고리즘 문제
위와 같이 피보나치수열을 계산할 때 0이랑 1이 출력되는 횟수를 구하는 문제.문제 그대로 재귀로 풀려고 하니 당연히 시간 초과가 났었다.피보나치수열 계산하는 것부터 O(2^n)인데 그걸 t번... 당연히 0.25초만에 결과가 나오지 않았다.그렇지만 사실 나는 다이나믹
DP 문제에 대한 역량이 부족하다고 느끼고 내 수준에서 할 수 있는 브론즈 수준에서의 DP 문제를 골라왔다.첫 번째 시도 실패. new_case를 for문 이전에 한 번만 생성하여 층이 바뀌어도 계속 한 배열에 추가된다고 판단. 또한 case = new_case 코드는
인접한 1 덩어리들의 개수를 세는 문제BFS, DFS 문제 연습을 해보겠다고 풀었으면서 큐나 스택을 이용할 방법이 마땅히 떠오르지 않아 (0,0)부터 (N,M) 까지의 값들을 하나씩 확인한 후. 해당 값이 1이면서 오른쪽 값이나 아래쪽 값이 1인 경우 자기 자신의 값을
정말 기본적인 그래프 탐색 문제.BFS 연습하려고 마음 먹었으니까 BFS로 풀어보자여기서 문제는 양방향 그래프임을 해결하기 위해 값이 작은 쪽에만 연결된 컴퓨터들을 저장해두었는데 그러니까 탐색해야 하는데 찾지 못 하는 경우가 생겼다.양쪽 다 저장하고도 해보았으나 이제는
작은 원의 접선이 큰 원과 만나는 두 점 사이 거리를 T, 작은 원의 반지름을 b, 큰 원의 반지름을 a라고 할 때 그림으로 표현하면 위와 같다.이때 b가 T에 내린 수선의발일 때 피타고라스의 정리에 의해 (T/2)^2 + b^2 = a^2이 된다.그렇기에 a^2 -
위 문제에서 가장 중요한 점은 적어도 K개의 수가 같으면 당첨이라는 점이다.M개의 숫자가 완전히 똑같을 때가 아닌 K개 이상 M개 이하의 개수만 맞혀도 된다는 것이다.그렇다면 이 확률은 전체 경우의 수, 1부터 N까지의 수 중 서로 다른 M개의 수를 고르는 경우의 수
문제 예제 2개 이상의 -또는 |가 같은 방향으로 붙어있는 경우 하나의 나무 판자를 의미하며 이 나무 판자의 개수를 세어야 한다. 나의 시도 한 줄 씩 입력 받아 해당 내용을 list로 만들어 floor라는 빈 리스트 안에 넣어준다. 시간복잡도를 위해 while
문제는 위와 같다. while문에 if문을 걸어서도 해결할 수 있지만 BFS 풀이 능력을 키우기 위해 고른 문제기 때문에 해당 방법으로 풀어보려고 처음 시도한 코드는 아래와 같다.너비 우선 탐색이 그래프에 같은 깊이에 있는 노드를 탐색하는 것으로 자료구조 큐를 이용했던
숫자판에 있는 숫자를 총 다섯 번 이동하여 총 숫자 6자리 만드는 것. 대신 지나온 숫자는 다 지나갈 수 있다고 할 때 깊이 우선 탐색을 이용해 코드를 짜보았다.위 코드에서 신경써야 하는 부분은숫자판을 문자열로 받아야한다는 점과 지나간 길을 path 인자로 받아 하나씩
일단 문제가 이게 뭐노.......그러니까 N번째로 감소하는 수라는 의미가 321 950과 같은 감소하는 수들 중 몇번째 감소하는 수인지 입력을 N으로 받고 해당 숫자가 무엇인지 출력하라는 것.그렇다면 감소하는 수들을 하나의 리스트로 우선 저장해두어야 하는데그걸 어째
요세푸스 순열을 구현하는 문제이다.이 문제의 관건은 K번째의 사람을 제거하고 제거한 사람으로 부터 K번째를 다시 세서 제거해야 한다는 점이다.맨 처음에 짠 코드는 아래와 같다. N명의 사람을 제거해야 하므로 for문은 for i in ragne(N)과 같이 돌렸으며 K
이 문제의 관건은 피자 조각의 크기다. 만약에 1/2개를 먹는 친구 1명과 3/4개를 먹는 친구 2명이 있다면 숫자를 다 더했을 때는 0.5+0.75+0.75=2.0이므로 2판을 먹어도 충분하다. 하지만 실제로 피자를 1/2 모양으로 잘랐을 때 남은 피자 조각은 1
처음 생각하기로는 간단하게 생각했다. 5도 6으로 보고, 6도 6으로 보았을 때 최댓값5는 5, 6도 5로 보았을 때 최솟값일 것이라고.그렇게 작성한 코드는 위와 같다. 애초에 입력받는 수를 문자열로 저장하여 각 자리에서 5인 자리와 6인 자리를 확인한 후 값을 바꾸어