전체 글 120

[이코테-구현] 실전 - 10. 자물쇠와 열쇠

[문제] https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr [책 풀이] 🔎 아이디어 열쇠를 회전하고 움직여서 자물쇠와 정확히 맞물리는지 완전 탐색한다. 열쇠가 회전하는 모든 경우의 수: 90도, 180도, 270도, 360도(제자리)를 고려한다. 열쇠가 자물쇠 위를 이동하는 모든 경우 수: 열쇠의 botton-right 모서리가 자물쇠의 top-left 모서리와 맞닿을 때 부터 ~ 열쇠의 top-left 모서리가 자물쇠의 botton-right 모서리와 맞닿을..

[Python] 입출력

👉 입력 input input을 통해 사용자가 입력한 값을 변수로 받을 수 있다. input은 입력된 모든 것을 문자열로 취급한다. a = input() input() 괄호 안에 질문을 입력하여 사용자에게 입력할 때 안내문구가 나오도록 할 수 있다. name = input('이름을 입력하시오: ') 👉 출력 print 자료형을 출력 a = [1,2,3] print(a) # [1,2,3] 큰따옴표(")로 둘러싸인 문자열은 + 연산과 동일 print('gone''with''the wind') # gonewiththe wind print('gone'+'with'+'the wind') # gonewiththe wind 콤마는 띄어쓰기를 한다. print('gone','with','the wind') # gone..

Language/Python 2022.06.22

[이코테-구현] 실전 - 09. 문자열 압축

[문제] https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr [책 풀이] 🔎 아이디어 1부터 문자열 절반 크기까지 step을 차례대로 증가시키면서, 각 step에 대한 압축 문자열을 구한다. 각 step에 대한 압축 문자열 중 가장 짧은 것이 정답이다. 🔎 코드 def solution(s): length = len(s) # 반복되는게 없는 경우 answer = length # 압축단위(step) : 1 ~..

[이코테-구현] 실전 - 08. 문자열 재정렬

[문제] 알파벳 대문자와 숫자(0 ~ 9)로만 구성된 문자열이 입력으로 주어집니다. 이때 모든 알파벳을 오름차순으로 정렬하여 이어서 출력한 뒤에, 그 뒤에 모든 숫자를 더한 값을 이어서 출력합니다. 예를 들어 K1KA5CB7이라는 값이 들어오면 ABCKK13을 출력합니다. [입력 조건] 첫째 줄에 하나의 문자열 S가 주어집니다. ( 1≤ S의 길이 ≤ 10,000 ) [출력 조건] 첫째 줄에 문제에서 요구하는 정답을 출력합니다. [내 풀이] 🔎 아이디어 알파벳과 숫자를 구분하기 위해, 문자열을 순회하면서 알파벳은 리스트에 저장하고 숫자는 정수값으로 더한다. 🔎 코드 s = input() result = [] number = 0 for i in s: # 알파벳인 경우 list에 삽입 if i.isalpha..

[이코테-구현] 실전 - 07. 럭키 스트레이트

[문제] https://www.acmicpc.net/problem/18406 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net [내 풀이] 🔎 코드 n = list(map(int,input())) length = len(n) mid = length//2 left_sum = sum(n[0:mid]) right_sum = sum(n[mid:]) if left_sum == right_sum: print('LUCKY') else: print('READY')

[Docker] Docker를 이용한 모델 학습 루틴, image 관리 (2022 이전)

1. docker 파일로 image생성 또는 docker pull docker build -t : or docker login docker pull : docker image tag : : image 이름은 docker hub에서 관리할 수 있도록 : 를 사용한다. 2. Screen 생성 또는 attach screen -S or screen -r 3. 가상터미널에서 docker run nvidia-docker run -v -it --shm-size 100G --name --rm : /bin/bash 4. container에 설치할 것 더 있으면 설치 pip install 5. 모델학습 sh train.sh or CUDA_VISIBLE_DEVICES=0,1,2,3 python ~.py ~ 6. image ..

개발환경/Docker 2022.06.19

[Docker] Docker 컨테이너에서 Tensorboard 사용하기

Tensorboard에 log 기록 (Pytorch) 1. Docker image에 tensorboard 설치 pip install tensorboardX 2. 모델 학습하면서 log 기록 # SummaryWriter import from tensorboardX import SummaryWriter # train_log_dir : log 저장 장소 train_writer = SummaryWriter(logdir=train_log_dir) ##### 학습 중 log 저장 ##### # ex train_writer.add_scalar('lr', optim.param_groups[0]['lr'], epoch) train_writer.add_scalar('val_psnr', mean_psnr, epoch) tr..

개발환경/Docker 2022.06.18

[Python] 내장함수

abs abs(x) 어떤 숫자를 입력받았을때, 절댓값을 반환 abs(3) # 3 abs(-3) # 3 abs(-0.7) # 0.7 divmode divmod(x,y) : x를 y로 나눈 몫과 나머지를 튜플 형태로 반환 divmod(7,3) # (2, 1) sum sum(iterable) iterable 객체의 모든 요소의 합을 반환 print(sum([1,2,3])) # 6 print(sum((2,3,4))) # 9 max max(iterable) 반복 가능한 자료형을 입력받아 그 최댓값을 반환 max([1,2,3]) # 3 min min(iterable) 반복 가능한 자료형을 입력받아 그 최솟값을 반환 min([1,2,3]) # 1 pow pow(x,y): x의 y 제곱한 결과값을 반환 pow(2,3)..

Language/Python 2022.06.17

[이코테-구현] 실전 - 게임 개발

[문제] 현민이는 게임 캐릭터가 맵 안에서 움직이는 시스템을 개발 중이다. 캐릭터가 있는 장소는 1 × 1 크기의 정사각형으로 이뤄진 N × M 크기의 직사각형으로, 각각의 칸은 육지 또는 바다이다. 캐릭터는 동서남북 중 한 곳을 바라본다. 맵의 각 칸은 (A,B) 로 나타낼 수 있고, A는 북쪽으로부터 떨어진 칸의 개수, B는 서쪽으로부터 떨어진 칸의 개수이다. 캐릭터는 상하좌우로 움지일 수 있고, 바다로 되어 있는 공간에는 갈 수 없다. 캐릭터의 움직임을 설정하기 위해 정해 놓은 매뉴얼은 이러하다. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향(반시계 방향으로 90도 회전한 방향)부터 차례대로 갈 곳을 정한다. 캐릭터의 바로 왼쪽 방향에 아직 가보지 않은 칸이 존재한다면, 왼쪽 방향으로 회전한 다음 ..