알고리즘

https://school.programmers.co.kr/learn/courses/30/lessons/12905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문제풀이 DP로 풀어야 겠다는 생각을 하기까지 좀 걸린 문제였습니다.. 아마 DP로 풀지 않으면 효율성 테스트에서 통과되지 않을거에요! 현재 위치 값이 1일 경우, 왼쪽 대각선 위, 위, 왼쪽 중 최솟값을 찾아 1더해서 저장합니다. 다음 과정을 계속 반복하면 이런 배열 모습이 나옵니다. 배열에 저장된 값중 최댓값을 찾아 출력하면 됩니다. 풀이 코드 def solution(board): ..
List List는 컴퓨터 프로그래밍에서 사용되는 데이터 구조로, 항목들의 순서를 유지하는 컬렉션이다.일련의 항목을 저장하고 접근하고 조작하는 데 사용된다. 다른 용어로는 배열(Array)이라고도 불리며, 동적 배열(Dynamic Array)로 구현되기도 한다. List 사용 list객체의 pop(0) 함수를 호출하면 첫 번째 데이터를 제거할 수 있다. pop(0) 또는 insert(0, x)는 시간복잡도가 O(N)이기 때문에 담고 있는 데이터의 개수가 많아질수록 느려진다. 큐 자료 구조의 효과를 내기 위해 사용하는 것은 비추천한다. Deque collections 모듈의 deque는 double-ended queue의 약자로 데이터를 양방향에서 추가하고 제거할 수 있는 자료구조이다. Deque 사용 d..
[Baekjoon] 단계별로 풀어보기 | 1차원 배열 | 8959 OX퀴즈 8958 OX퀴즈 파이썬 코드 답안 N= int(input()) for i in range(N): list=input() cnt=0 sum=0 for j in range(len(list)): if list[j]=='O': cnt+=1 if list[j]=='X': cnt=0 sum+=cnt print(sum) O, X로 이루어진 문자열을 list로 받기 list길이만큼 반복하고 list의 첫 번째 문자부터 O일 경우 cnt+1, X일 경우 cnt 0 초기화 틀린 내용이 있다면 댓글로 알려주세요 :) 문제의 자세한 내용은 백준 사이트를 확인해주세요 ;)
[Baekjoon] 단계별로 풀어보기 | 1차원 배열 | 1546 평균 1546 평균 파이썬 코드 답안 N= int(input()) list = list(map(int,input().split())) list1 = [i/max(list)*100 for i in list] print(sum(list1)/N) 작성한 코드 내용 N에다가 시험 본 과목의 개수를 입력 받습니다 list에다가 점수들을 입력받고 list1에다가 점수들을 문제에 맞게 연산해서 리스트로 만들어줬습니다 출력은 list1의 평균이 나오도록 했습니다 이번 문제는 연산 부분만 잘 작성하면 될 거 같아요 틀린 내용이 있다면 댓글로 알려주세요 :) 문제의 자세한 내용은 백준 사이트를 확인해주세요 ;)
[Baekoon] 단계별로 풀어보기 | 1차원 | 배열 2577 난이도가 코드업 기초 100제 종합 문제 정도로 올라간 느낌입니다. 천천히 풀어보도록 하겠습니다 2577 숫자의 개수 파이썬 코드 답안 A= int(input()) B= int(input()) C= int(input()) N=A*B*C list = [0 for j in range(10)] for i in range(9): list[(N%10)]+=1 N=int(N/10) if N==0: break for i in range(10): print(list[i]) 숫자 0~9 체크할 때는 리스트를 이용해서 많이들 하는 거 같아요 저도 비슷한 방법으로 작성해 보았습니다 반복문 코드를 보자면, N을 10으로 나눈 나머지 -> N의 일의 자리 N의 일..
[Baekjoon] 단계별로 풀어보기 | 1차원 배열 | 10818, 2526 반복문 다음 단계!! 1차원 배열 2문제 풀어볼까요 10818 최소, 최대 파이썬 코드 답안 N = int(input()) list = list(map(int,input().split())) print(min(list), max(list)) N은 사용하지 않았습니다 예제 입력처럼 하려고 작성했습니다 2526 최댓값 파이썬 코드 답안 list=[] for i in range(9): list.append(int(input())) print(max(list)) print(list.index(max(list))+1) 리스트로 입력값 받아주고 max()랑 list.index() 이용해서 출력했습니다 max(리스트명) : 리스트의 요소 ..
[Baekjoon] 단계별로 풀어보기 | 반복문 | 1110 반복문 마지막 파트! 1110번입니다. 1110 더하기 사이클 파이썬 코드 답안 N=int(input()) A=N cnt=0 while True: N= int(((N%10)*10)+(((N/10)+(N%10))%10)) cnt+=1 if N==A: break print(cnt) 문제 패턴 N = 68 십의 자리 : 원래 일의 자리(8)*10 > 십의 자리(8) 일의 자리 : 십의 자리(6) + 일의자리(8) > 두 합의 일의자리(4) : ((N/10)+(N%10)) 다음 N = 84 이렇게 돌아가는 패턴입니다! 규칙을 찾았으니 바로 식에 적용해보자면, N= int(((N%10)*10)+(((N/10)+(N%10))%10)) 십의 자리 : 원래 ..
[Baekjoon] 단계별로 풀어보기 | 반복문 | 10871, 10952, 10951 반복문 3문제입니다. 뒤로 갈수록 헷갈리니 집중해서 풀어볼까요? range(n) 은 0, 1, 2,... , n-2, n-1까지의 수열을 의미한다. 예를 들어 range(3) 은 0, 1, 2 인 수열을 의미한다. range(끝) range(시작, 끝) range(시작, 끝, 증감) 형태로 수열을 표현할 수 있다. 시작 수는 포함이고, 끝 수는 포함되지 않는다. [시작, 끝) 증감할 수를 작성하지 않으면 +1이 된다. 10871 X보다 작은 수 파이썬 코드 답안 N, X = map(int,input().split()) list =list(map(int, input().split())) for i in range(N):..
[Baekjoon] 단계별로 풀어보기 | 반복문 | 11021, 11022, 2438 단계별로 풀어보기 반복문 파트 이어서 3문제 풀어보도록 하겠습니다. for i in range(n) : #range(n)에 들어있는(in) 각각의 수에 대해서(for) 순서대로 i에 저장해 가면서... 이때의 for는 각각의 값에 대하여...라는 for each의 의미를 가진다고 생각할 수 있다. range(끝) range(시작, 끝) range(시작, 끝, 증감) 형태로 수열을 표현할 수 있다. 시작 수는 포함이고, 끝 수는 포함되지 않는다. [시작, 끝) 증감할 수를 작성하지 않으면 +1이 된다. 11021 A+B-7 파이썬 코드 답안 T =int(input()) for i in range(T): a, b = map..
[Baekjoon] 단계별로 풀어보기 | 반복문 | 15552, 2741, 2742 어제 풀었던 2739, 10950, 8379번에 이어서 3문제 풀어보도록 하겠습니다 n = int(input()) for i in range(n+1) : print(i) 참고 range(n) 은 0, 1, 2,... , n-2, n-1까지의 수열을 의미한다. 예를 들어 range(3) 은 0, 1, 2 인 수열을 의미한다. for i in range(n) : #range(n)에 들어있는(in) 각각의 수에 대해서(for) 순서대로 i에 저장해 가면서... 이때의 for는 각각의 값에 대하여... 라는 for each의 의미를 가진다고 생각할 수 있다. range(끝) range(시작, 끝) range(시작, 끝, 증감) ..
늘코딩
'알고리즘' 태그의 글 목록