[코틀린] 프로그래머스 42840(모의고사)
2022. 1. 19. 18:37
Algorithm
📌 풀이 우선 플레이어 1, 2, 3의 찍기 패턴을 등록한다. 그리고 추후 점수를 기록할 scores도 IntArray로 초기화해 놓는다. 파이썬의 enumerate의 기능을 하는 withIndex와 나머지공식을 사용해 점수 배열과 플레이어의 패턴을 비교해 같을 경우 score에 1씩 더해준다. 마지막에 scores를 똑같이 withIndex로 for문을 돌려놓고 max인 값과 비교해 같다면 해당 자리의 인덱스를 result에 넣어 정답을 구하면 된다. 근데 여기서 문제가 하나 있었는데 프로그래머스의 코틀린 컴파일 버전에서 maxOrNull을 지원하지 않았다. 따라서 제출 할때는 java의 컬렉션을 불러와 새롭게 max를 지정해 제출했다. 코드 1 (프로그래머스에서는 에러) class Solution {..
[파이썬] 프로그래머스 42840(모의고사)
2022. 1. 19. 18:26
Algorithm
📖 풀이 우선 규칙을 나타내는 리스트들을 나열하고 그것을 answers와 비교해 1, 2, 3번 플레이어의 count를 하나씩 올려주었다. 그다음 이 3개의 count 중 max 값을 answer에 넣어주고 sort 해주어 문제를 풀었다. 하나하나 하드 코딩해서 코드가 매우 길다 def solution(answers): answer = [] length = len(answers) temp2 = [2, 1, 2, 3, 2, 4, 2, 5] temp3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] a = [] b = [] c = [] for i in range(length): a.append(i % 5 + 1) for i in range(length): if (i % 2) == 0: b.appe..
선형 리스트와 연결 리스트의 정의 (Kotlin 으로 연결 리스트 구현)
2022. 1. 11. 15:02
CS
📌 선형 리스트(ArrayList) 선형 리스트란 배열과 같이 연속되는 기억 장소에 저장되는 리스트를 말한다. 선형 리스트는 논리적인 순서와 기억 장소에 저장되는 물리적 순서가 일치한다. 선형 리스트의 장점 간단한 자료구조이다. 접근 속도가 빠르다. 연속된 메모리 공간에 존재하기 때문에 관리하기가 편하다. 선형 리스트의 단점 중간에 자료를 삽입하기 위해서는 연속된 빈 공간이 있어야 한다. 즉 삽입과 삭제를 위해서는 자료의 이동이 필요하기 때문에 번거롭다. 또한 배열의 크기보다 데이터의 수가 클 경우 데이터를 저장할 수 없는 경우가 생긴다. 📌 연결 리스트(LinkedList) 연결 리스트는 자료들을 연속적으로 배열시키지는 않고 임의의 기억공간에 기억시키면서, 자료 항목의 순서에 따라 노드의 포인터 부분을..
가상머신에 리눅스 설치 & 로컬 컴퓨터로 리모트 컴퓨터 접속
2022. 1. 6. 15:50
CS
코드스쿼드 CS 시간에 컴퓨터 환경에서 사용할 수 있는 가상 환경(Virtual Machine)에서 리눅스 운영체제를 설치 로컬 컴퓨터에서 가상 환경 리모트 컴퓨터에 ssh로 접속해서 본인 계정으로 로그인하여 디렉터리를 생성해보는 미션을 받았다. 💻 로컬 컴퓨터와 리모트 컴퓨터 웹 서버에 배포를 해야하는 환경에서는 로컬에서 작업한 것을 리모트 컴퓨터에 복사해야 하는 상황이 생긴다. 모바일 개발자도 내 컴퓨터에서 작업하고 모바일 디바이스로 옮겨야 하는 상황과 비슷하다. 쉘(Shell) Shell(쉘, 셸)이란? OS와 대화하는 프로그램 여러 가지 종류가 있는데 지금은 bash 사용 맥 사용자는 zsh를 사용하는 것도 좋은 방법이라고 한다.(필자가 zsh를 사용하고 있다.) 💻 가상 환경 설치하기 필자는 M..
백준 알고리즘 파이썬(Python) 1009번 분산처리
2022. 1. 5. 22:30
Algorithm
❌ 풀이 1 (시간 초과 실패) N = int(input()) for _ in range(N): a, b = map(int, input().split()) print((a ** b) % 10) 제곱의 수가 커질수록 수가 상상 이상으로 커져 시간 초과가 나오게 된다. 🙆♂️ 풀이 2 컴퓨터가 총 10대이고 하나하나 제곱하며 10으로 나눈것의 나머지의 규칙을 찾아보면 다음 표와 같이 나온다. 여기서 조심해야 될 부분은 끝자리가 0인 값의 제곱수들인데 0번 컴퓨터는 없으므로 해당 값들은 10번 컴퓨터가 출력되도록 코드를 짜주어야 한다. 각각의 경우를 if문을 통해 불필요한 계산을 줄여주어 시간초과를 피할 수 있었다. 풀이 코드 n = int(input()) arr = [] for i in range(n): ..