머리속으로 그린 과정은 이러하다. 학점 따로, 과목 평점 따로 받아서 반복문 한번 돌 때 마다 (학점 과목평점), 학점을 total 변수에다 쌓아주고, 마지막에 (학점 과목평점)의 총합 / (학점의 총합) 출력하기. 코드 풀이과정내가 결국 계산해야할 총합 초기값을
풀이 내 로드맵은 이러했다. A와 B라는 3x3 2차원 배열을 만들고 각각 같은 위치인 요소들끼리 더한 C라는 새로운 배열을 만들고 출력하자! 파이썬으로 이차원 배열은 처음 만들어봤다. 문제가 이해가 안돼서 살짝 당황했다가 이해하고나니 슥슥 풀렸다. 이차원 배열
문제 내가 생각한 해결방법 : 이차원 배열로 9x9 행렬을 만든다. 최댓값을 구하는 방법은 각 row에서 대빵형님(max값)을 골라서 list에 모아둔 다음 거기서 또 찐또대빵형님(max값 리스트중 max값)을 고를거라 어려워보이지 않는다. 찐또대빵형님의 출신지(i
내가 생각한 해결방법:그냥 이것도 이차원배열 만들고 index에 따라 출력하면 될 것 같다. 단어 글자 수에 따라서 반복문을 어떻게 돌릴지, 빈 칸을 어떻게 뛰어넘을 것인지가 포인트인듯.전체 코드코드 풀이먼저 input을 각각 요소로 하는 list를 작성했다.반복문을
문제 내가 생각한 해결방법: 문제에서 색종이의 정확한 위치가 아니라 도화지와의 거리를 제시해준다. 거리의 차를 통해서 색종이끼리 겹치는 거리가 얼마인지 구한다음, (10x10)x3 = 300인 넓이에서 겹치는 만큼 빼주길 바라는거겠지? 직접 손으로 그리면서 풀어보자.
간단한 진법 변환 문제다. 사실 안 간단하다. 왜냐면 내가 좀 무식해서 진법 개념을 잘 몰랐기 때문이다. 사실 잘 모르기보다 뭔지 알긴 하는데 맨날 생각할 때마다 머리가 꼬여서 생각하기 싫어했다. 그래서 이 기회에 좀 확실히 공부했다. 자릿수에 따라 진법 계산만 하면
진법 변환 1 문제에서 조금만 바꾸면 되겠지? 했지만 진법 변환이라는 개념 자체에 익숙하지 않았던 탓에 꽤 골치아팠다. https://dlxdlx.tistory.com/5 이 형님의 진법 개념에 대한 정리글을 읽고 아주 큰 도움이 됐다.결국 과정은 이렇다. 1
테스트 케이스만큼 잔돈 C를 받아서 내가 화폐 단위에 따라 몫을 구해서 리스트에 저장했다. 나머지는 다시 다음 반복문때 다음 단위로 나눴다. 이렇게 해서 리스트를 출력하고 다음 테스트 케이스에서 초기화했다.객관적으로 쉬운문제였다. 다음.
딱봐도 귀납적으로 규칙을 찾는 문제이다. 이번에는 심플하게 한줄만에 작성해봤다. 나는 변 안에 짝대기 갯수가 과정을 n번 거칠 때마다 2^n개가 되는 것을 파악했다. 그리고 한 변에 점이 2^n+1개를 제곱하면 전체 점의 수가 구해지는 규칙을 찾았다. 그래서 나온 코드
상당해보인다. 한 겹 올라갈 때마다의 규칙을 찾는게 중요해보인다.처음 쓴 코드다. 범위가 6n씩 증가하는 규칙을 찾아 매번 list를 갱신하고 N이 그 안에 속해있는지 검증했다. 그리고 그 N이 속한 층을 출력했다.시간 초과로 틀렸다. 돌아가긴 하는데, N이 어떤 범위
단순한 수 정렬 문제라서 의아했다. 그럼 그렇지 첫번째 제출이 시간 초과로 오류가 났다. 문제점을 찾아보니 여러 줄의 입력을 받을 때 input()을 사용하는 것 보다 sys.stdin.readline()을 사용하는 방법이 시간 측면에서 좋다고한다. input() 내장
좌표를 오름차순으로 정렬하는 문제. sort()를 사용하지 못하게 하려고 y값을 넣은 줄 알았으나 y값 역시 sort()로 정렬 가능하다는 사실을 문제를 다 풀고 깨달았다. 아래는 내가 sort()를 사용하지 않고 아까 배운 insertion sorting 알고리즘을
sort만능 lambda 형님을 사용하면 문제없어보이는 문제였다. 나이와 이름을 입력받아서 나이만 lambda형님으로 정렬하고 나머지는 그냥 입력받은 순서대로 두면 될 것 같았다. 이건 내 코드. 코드는 예상하는대로 잘 흘러갔다.근데 우선순위가 같을 때 입력한 순서 그
stack 개념을 이용하는 문제이다. 문제는 단순한데, 이해하는데 조금 걸리긴했다. 힌트를 보면서 직접 손으로 써보니 이해가 됐다. stack에 쌓인 마지막 pan이 내가 입력하는 num와 같은지 확인한다. pan을 한번 쌓을 때 마다 +를, pop 할 때마다 -를 배
실버 2등급 문제이고 열심히 머리싸메고 풀어서 구현해냈다.요것이 내 코드. 나는 괄호가 열릴 때 마다 다음 괄호와 비교해 쇠막대기인지 레이저인지 분류했다. 쇠막대기는 속해있는 레이저의 수 + 1 이 된다는 점, 쇠막대기 하나에 레이저 하나가 무조건 따라온다는 점을 이용
내 코드는 이러했다. 소문자, 대문자, 숫자, 공백을 cnt라는 배열에서 세는 방법을 선택했다. islower(), isupper(), isdigit() 메소드를 이용해서 종류를 구분하고 해당되는 위치에 1을 더해줬다. 근데 보통 테스트케이스를 먼저 입력해주고 시작하는
일단 아스키코드가 쓰기 꽤 빡세보여서 문자열에 알파벳 다 박고 인덱스로 다룸(사실 별차이 없음)그것보다 중요한게 이 챗지피티형님이 가르쳐주신 인덱스 나누기 방법. 그것이 뭐냐면 어떤 정해진 범위에서 인덱스를 다뤄야 할 때, 인덱스 범위를 넘어간 만큼 앞에서 시작해줄 때
꽤나 고민했다. 어떻게 하면 더 간단하게 풀 수 있을지. 중요도를 비교할 때 뒤로 넘기는 것이 아니라 순서를 뒤로 넘어가도 똑같다는 것을 알아차렸다. 순서 상관없이 비교하는 수 보다 큰 수가 하나라도 있는지 확인했다. 큰 수가 없어서 뽑아줄 때는 그자리를 0으로 만들어