코테 21

코딩테스트 준비 - 파이썬 해시 정리

딕셔너리로 접근해서 푸는 문제는 '해시' 유형으로 dictionary 자료구조를 얼마나 잘 쓸 수 있냐를 묻는 문제 해시 문제를 풀기위해 알아야 할 것들을 정리해봄 enumerate란? iterable한 자료형을 인자로 넣으면 (인덱스,값) 형태의 enumerate 객체를 반환 for문과 사용할 수도 있고, 리스트나 딕셔너리 형태로 만들 수도 있음 헷갈리지 말고 기억할 것: 인덱스가 먼저고 값이 그 다음인 형태 [파이썬이 권장하지 않는 for문 사용 방식] for i in range(len(arr)): print(arr[i]) [파이썬이 권장하는 방식] for item in arr: print(item) 위 두 가지 방식의 차이를 이해했다면 enumerate의 쓰임이 어디에 있는지도 대강 감이 옴 for..

CodingTest 2023.10.30

SWEA - 숫자 배열 회전(1961)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 N x N 행렬이 주어질 때, 시계 방향으로 90도, 180도, 270도 회전한 모양을 출력하라. [제약 사항] N은 3 이상 7 이하이다. [입력] 가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다. 각 테스트 케이스의 첫 번째 줄에 N이 주어지고, 다음 N 줄에는 N x N 행렬이 주어진다. 접근방식 90도 돌릴 배열, 180도 돌릴 배열, 270도 돌릴 배열을 빈 배열로 선언 문제가 처음에 이해되지 않아 예제 문제로 로직을 파악해봤음 arr = [[1,2,3], [4,5,6], [7,8,9]] 일 경우, 배열의..

CodingTest 2023.10.27

SWEA - 파스칼의 삼각형(2005)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 크기가 N인 파스칼의 삼각형을 만들어야 한다. 파스칼의 삼각형이란 아래와 같은 규칙을 따른다. 1. 첫 번째 줄은 항상 숫자 1이다. 2. 두 번째 줄부터 각 숫자들은 자신의 왼쪽과 오른쪽 위의 숫자의 합으로 구성된다. N이 4일 경우, N을 입력 받아 크기 N인 파스칼의 삼각형을 출력하는 프로그램을 작성하시오. [제약 사항] 파스칼의 삼각형의 크기 N은 1 이상 10 이하의 정수이다. (1 ≤ N ≤ 10) [입력] 가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다. 각 테스트 케이스에는 N이 주어진다. 접근방식 ..

CodingTest 2023.10.27

SWEA - 쉬운 거스름돈(1970)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 우리나라 화폐 ‘원’은 금액이 높은 돈을 우선적으로 계산할 때 돈의 개수가 가장 최소가 된다. S마켓에서 사용하는 돈의 종류는 다음과 같다. 50,000 원 10,000 원 5,000 원 1,000 원 500 원 100 원 50 원 10 원 S마켓에서 손님에게 거슬러 주어야 할 금액 N이 입력되면 돈의 최소 개수로 거슬러 주기 위하여 각 종류의 돈이 몇 개씩 필요한지 출력하라. [예제] N이 32850일 경우, 50,000 원 : 0개 10,000 원 : 3개 5,000 원 : 0개 1,000 원 : 2개 500 원 : 1개 100 원 : 3개 50 원 : ..

CodingTest 2023.10.27

SWEA - 간단한 압축풀기(1946)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 원본 문서는 너비가 10인 여러 줄의 문자열로 이루어져 있다. 문자열은 마지막 줄을 제외하고 빈 공간 없이 알파벳으로 채워져 있고 마지막 줄은 왼쪽부터 채워져 있다. 이 문서를 압축한 문서는 알파벳과 그 알파벳의 연속된 개수로 이루어진 쌍들이 나열되어 있다. (예 : A 5  AAAAA) 압축된 문서를 입력 받아 원본 문서를 만드는 프로그램을 작성하시오. [예제] 압축된 문서의 내용 A 10 B 7 C 5 압축을 풀었을 때 원본 문서의 내용 AAAAAAAAAA BBBBBBBCCC CC [제약사항] 1. 압축된 문서의 알파벳과 숫자 쌍의 개수 N은1이상 10..

CodingTest 2023.10.25

SWEA - 두 개의 숫자열(1959)

SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 N 개의 숫자로 구성된 숫자열 Ai (i=1~N) 와 M 개의 숫자로 구성된 숫자열 Bj (j=1~M) 가 있다. 아래는 N =3 인 Ai 와 M = 5 인 Bj 의 예이다. Ai 나 Bj 를 자유롭게 움직여서 숫자들이 서로 마주보는 위치를 변경할 수 있다. 단, 더 긴 쪽의 양끝을 벗어나서는 안 된다. 서로 마주보는 숫자들을 곱한 뒤 모두 더할 때 최댓값을 구하라. 위 예제의 정답은 아래와 같이 30 이 된다. [제약 사항] N 과 M은 3 이상 20 이하이다. [입력] 가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주..

CodingTest 2023.10.25

Programmers - 성격 유형 검사하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 나만의 카카오 성격 유형 검사지를 만들려고 합니다. 성격 유형 검사는 다음과 같은 4개 지표로 성격 유형을 구분합니다. 성격은 각 지표에서 두 유형 중 하나로 결정됩니다. 지표 번호 성격 유형 1번 지표 라이언형(R), 튜브형(T) 2번 지표 콘형(C), 프로도형(F) 3번 지표 제이지형(J), 무지형(M) 4번 지표 어피치형(A), 네오형(N) 4개의 지표가 있으므로 성격 유형은 총 16(=2 x 2 x 2 x 2)가지가 나올 수 있습니다. 예를 들어, "RFMN"이나 "TCMA"와 같은 성격 유형이 ..

CodingTest 2023.10.24

SWEA - 패턴 마디의 길이(2007)

문제 패턴에서 반복되는 부분을 마디라고 부른다. 문자열을 입력 받아 마디의 길이를 출력하는 프로그램을 작성하라. [제약 사항] 각 문자열의 길이는 30이다. 마디의 최대 길이는 10이다. [입력] 가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다. 각 테스트 케이스의 첫 번째 줄에는 길이가 30인 문자열이 주어진다. 접근방식 입력되는 문자열을 words 변수에 받음 그리고 문자열을 한 문자씩 자르기 위해 list(words)를 listed_words라는 변수에 할당 빈 배열 arr를 선언해주고 listed_words길이만큼 j를 인자로 for문을 돌면서 j번째 문자가 arr에 없으면 arr에 할당해줌 만약 문자가 있으면 해당 문자가 문자열 반복이 끝나고 나오는 ..

CodingTest 2023.10.23

코딩테스트 준비 - 파이썬 문법 정리

파이썬의 자료형 정수형, 실수형, 복소수형, 문자열, 리스트, 튜플, 사전 정수형 정수를 다루는 자료형 양의 정수, 0, 음의 정수가 포함 실수형 소수점 아래의 데이터를 포함하는 수 자료형 소수부가 0일 때 0 생략 가능 지수 표현 방식 파이썬에서는 e나 E를 이용한 지수 표현 방식 이용 e, E 다음에 오는 수는 10의 지수부를 의미 ex) 1e9 -> 10의 9제곱(1,000,000,000). 1 x 10^9 최단 경로 알고리즘에서는 도달할 수 없는 노드에 대해 최단 거리를 무한(INF)로 설정하곤 함 이때 가능한 최댓값이 10억 미만이라면 무한(1NF)의 값으로 1e9를 이용할 수 있음 # 1,000,000,00의 지수 표현 방식 a = 1e9 print(a)// 1000000000.0 #752.5..

CodingTest 2023.10.22

코딩테스트 준비 - 알고리즘 성능 평가

복잡도란? 시간 복잡도: 특정 크기의 입력에 대해 알고리즘의 수행 시간 분석 공간 복잡도: 특정 크기의 입력에 대해 알고리즘의 메모리 사용량 분석 시간 복잡도가 높다 -> 알고리즘 실행에 오랜 시간이 걸린다 공간 복잡도가 높다 -> 알고리즘 실행에 많은 메모리가 사용된다 빅오 표기법 가장 빠르게 증가하는 항만 고려하는 표기법 ex) 연산 횟수가 3N^3 + 5N^2 + 1,000,000 이면 시간 복잡도는 O(N^3) 알고리즘 설계 팁 연산 횟수가 5억을 넘어가는 경우: - C언어: 1~3초 가량 시간 소요 - Python: 5~15초 가량 시간 소요 코딩테스트 문제에서 시간제한은 통상 1~5초 가량 수행 시간 측정 소스코드 예제 import time start_time = time.time() # 측정..

CodingTest 2023.10.21