본문 바로가기

전체 글400

카드 뭉치 첫번째 코드 두 개의 리스트에서 하나씩 인덱스를 미뤄가면서 가능하면 답에 넣고 아니면 넣지 않는 방법으로 진행한다. 그러므로 투포인터를 사용해서 풀면 되겠구나!! 라고 생각했다. def solution(cards1, cards2, goal): answer = "" index1 = 0 index2 = 0 A = [] for i in goal: if i == cards1[index1]: A.append(cards1[index1]) if index1 2024. 4. 19.
모의고사 첫번째 코드 문제를 보고 든 생각은 어...학생 답을 어떻게 만들지? 였다. 하지만 몫과 나머지 방법을 이용하면 만들어볼 수 있겠구나! 라는 생각을 했다. 답에 패턴이 있으므로 정답이 답의 패턴보다 길면 해당 길이의 몫만큼 곱하고 나머지 값을 인덱싱해서 추가하는 방법으로 학생들의 답을 만든다! [패턴] * (정답의 길이 // 패턴의 길이) + 패턴[:(정답의 길이 % 패턴의 길이)] 2024. 4. 19.
011 스택 수열 첫번째 코드 일단...문제 이해에서 고생을 했다... 해당 숫자까지 삽입하고 삭제하는 과정이 가능한지, 과정을 +와 -로 표현하는건데 숫자와 수열이랑 관계가 있나로 쓸데없는 고민을 했다... 이럴떄는 밥먹고 리프레쉬해서 산뜻한 마음으로 다시 읽어봐야지..하고 이해해버렸다 ㅎㅎ 근데 문제느 스택을 처음 접해서 고민을 많이 했다... 스택으로 더하고 빼는 것 까지는 이해를 했는데....라고 까지 생각했는데 그냥 단순하게 리스트에서 더하고 뺴는 것이라고 생각하면 된다! 단, 맨 끝에 더해지고 맨 끝에 제외된다 라는 생각을 가지면 된다! 책을 참고해서 코딩을 했는데, 다음에 풀 때는 조건문 조금씩 생각하면 금방 풀 수 있을 것 같다! import sys input = sys.stdin.readline n = i.. 2024. 4. 18.
012 오큰수 첫번째 코드 책에서 말한 큐와 스택을 이용하여 문제를 푸는데 어떻게 작성해야할 지 몰라 책을 참고했다! 처음에 계속 의문이었지만 코드를 작성하고 디버깅으로 돌리면서 이해했다! stack 리스트에는 인덱스가 들어간다고 생각하면 편하다 만약 다음 값이 크면, stack에 값이 있고 A[stack]가 A[i]보다 작을때 계속 해서 반복 answer[stack]에 A[i] 부여 (A[i]값이 더 큰거니까) stack에 i 인덱스 추가 위의 과정을 반복하고 만약 이후에 stack에 원소가 존재하면 그것은 왼쪽에 현재보다 더 큰수가 없었다는 의미이므로 -1를 출력해야한다. 그렇게 결과를 만들어내면 된다! import sys input = sys.stdin.readline n = int(input()) A = lis.. 2024. 4. 18.
내적 첫번째 코드 for i in range A: 라고 하면 i에 A의 원소들이 하나씩 들어온다. 이런 방법을 써서 각각의 리스트에서 각각의 원소들을 불러오려는 아이디어이다. 하지만 리스트 두개에서 각각 불러올 때 병렬 형태로 불러와야 하므로 for i, j in range A, B 가 아닌 for i, j in range zip(A, B) 형태를 이용해야 한다! def solution(a, b): answer = 0 for i, j in zip(a, b): answer += i * j return answer 통과! 링크 https://github.com/ornni/programmers/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/7.. 2024. 4. 18.
약수의 합 첫번째 코드 약수를 구하는 방법에 대해서 이전에 GPT와 상담한 적이 있어서 그걸 이용해서 풀어보자! 라는 생각이었다. n까지 숫자가 있으면 1~n까지 값을 n에 나누어보고 나누어지면 해당 값은 약수이므로 그 값을 더하자! def solution(n): answer = 0 for i in range(1, n+1): if n % i == 0: answer += i return answer 통과! 두번째 코드 사실 위 코드도 맞게 돌아가는데, 이전에 용량 문제로 돌아가지 않는 문제가 있었다. 그때 해결했던 방법을 이용해서 문제를 풀어보려고 한다! 1~n까지 값을 모두 나누어보는 것이 아니라 sqrt(n)까지만 나누어보고 약수는 하나가 존재하면 다른 하나가 존재한다고 생각하면 되므로 그 값을 구해 더하는 것이.. 2024. 4. 17.
728x90