728x90
반응형

파이썬 33

[Cos Pro 2급] 4차 1번 - 사다리타기

문제1 사다리 게임은 먼저 사람 수만큼 세로줄을 긋고 한쪽 편에는 이름을 쓰고 반대쪽에는 상품 위치를 씁니다. 서로 인접한 세로줄 사이에 가로줄을 무작위로 그은 다음 세로줄을 타고 내려가면서 가로줄을 만날 때마다 가로줄로 연결된 다른 세로줄로 가는 게임입니다. 6명이 사다리 게임을 할 때, 몇 번째 위치에서 시작하는 사람이 상품을 타는지 알고 싶습니다. 가로줄은 항상 인접한 세로줄만 연결할 수 있으며 주어진 순서대로 위에서부터 연결합니다. 예를 들어, 아래 사다리의 가로줄은 [[1, 2], [3, 4], [2, 3], [4, 5], [5, 6]] 으로 표현합니다. 이때 1번째 위치에서 시작한 사람이 상품을 탑니다. 가로줄의 위치가 담긴 2차원 리스트 ladders와 상품의 위치 win이 매개변수로 주어질..

Algorithm Problems 2021.02.06

[Cos Pro 1급] 3차 3번 - 비숍

문제3 체스에서 비숍(Bishop)은 아래 그림과 같이 대각선 방향으로 몇 칸이든 한 번에 이동할 수 있습니다. 만약, 한 번에 이동 가능한 칸에 체스 말이 놓여있다면 그 체스 말을 잡을 수 있습니다. 8 x 8 크기의 체스판 위에 여러 개의 비숍(Bishop)이 놓여있습니다. 이 때, 비숍(Bishop)들에게 한 번에 잡히지 않도록 새로운 말을 놓을 수 있는 빈칸의 개수를 구하려고 합니다. 옆의 그림에서 원이 그려진 칸은 비숍에게 한 번에 잡히는 칸들이며, 따라서 체스 말을 놓을 수 있는 빈칸 개수는 50개입니다. 8 x 8 체스판에 놓인 비숍의 위치 bishops가 매개변수로 주어질 때, 비숍에게 한 번에 잡히지 않도록 새로운 체스 말을 놓을 수 있는 빈칸 개수를 return 하도록 solution ..

Algorithm Problems 2021.02.02

[Cos Pro 1급] [백준] 1차 2번, 3449번 - 해밍거리

문제 해밍 거리(Hamming distance)란 같은 길이를 가진 두 개의 문자열에서 같은 위치에 있지만 서로 다른 문자의 개수를 뜻 합니다. 예를 들어 두 2진수 문자열이 "10010"과 "110"이라면, 먼저 두 문자열의 자릿수를 맞추기 위해 "110"의 앞에 0 두 개를 채워 "00110"으로 만들어 줍니다. 두 2진수 문자열은 첫 번째와 세 번째 문자가 서로 다르므로 해밍 거리는 2입니다. 1 0 0 1 0 0 0 1 1 0 두 2진수 문자열 binaryA, binaryB의 해밍 거리를 구하려 합니다. 이를 위해 다음과 같이 간단히 프로그램 구조를 작성했습니다 1단계. 길이가 더 긴 2진수 문자열의 길이를 구합니다. 2단계. 첫 번째 2진수 문자열의 길이가 더 짧다면 문자열의 앞에 0을 채워넣어..

Algorithm Problems 2021.01.28

[Cos Pro 2급] 4차 2번 - 체력 시험 합격 인원

문제 체력시험 합격 인원을 알아보려고 합니다. 체력시험 종목으로는 윗몸일으키기, 팔굽혀펴기, 달리기가 있습니다. 종목별 합격기준은 다음과 같습니다. | 윗몸일으키기 | 팔굽혀펴기 | 달리기 | | 80점 이상 | 88점 이상 | 70점 이상 | * 통과한 종목이 하나 이하거나, 통과 점수의 반을 넘기지 못한 종목이 있다면 불합격입니다. * 그 외에는 합격입니다. 시험에 합격한 인원을 구하기 위해 다음과 같이 프로그램 구조를 작성했습니다. 1. 통과한 종목이 몇 개인지 셉니다. 2. 통과 점수의 반을 넘기지 못한 종목이 몇 개인지 셉니다. 3. 통과한 종목이 하나보다 많고 통과 점수의 반을 넘기지 못한 종목이 없으면 통과한 인원으로 셉니다. 각 종목 기록을 담고 있는 리스트 scores가 매개변수로 주어질..

Algorithm Problems 2021.01.24

[업무자동화] 폴더 속 모든 폴더 및 파일 복사하여 옮기기

import datetime import os import shutil now = datetime.datetime.now() wdays=['월','화','수','목','금','토','일'] wday=now.weekday() y=now.strftime('%Y년') m=str(now.month)+'월' folders=os.listdir('./'+wdays[wday]+'/') for folder in folders : src=os.path.join('./'+wdays[wday]+'/',folder) dst="C:\\Users\\user\\" dst+= y + m+'/' dst+=m + now.strftime('%d일')+'('+wdays[wday]+')/'+folder shutil.copytree(src,ds..

카테고리 없음 2021.01.17

[업무자동화] 일별 보고 문자 작성 및 문서 이름 수정

import datetime import os import shutil #이곳에 자신의 이름을 적어주세요 myName="홍길동" now = datetime.datetime.now() files = os.listdir('./') wdays=['월','화','수','목','금','토','일'] wday=now.weekday() f=open('kakaoTalk.txt','w',encoding='cp949') f.write('['+myName+' 일별 보고]\n\n') f.write('- 금일 '+now.strftime('%m.%d')+'('+wdays[wday]+') 업무 마쳤습니다.\n') f.write('- 보고서 관리 파일 첨부합니다.') f.close() for file in files: if file..

카테고리 없음 2021.01.17

[백준] 1094 .py - 막대기

www.acmicpc.net/problem/1094 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대 www.acmicpc.net x = int(input()) count =1 total = 64 cut=64 while x != total: cut//=2 if x > total: total += cut count += 1 elif x< total: total -= cut #print(total, cut,count) print(count)

Algorithm Problems 2021.01.15

[백준] 1157 .py - 단어 공부

www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net def sol(word): result = {} word = word.upper() for a in word: if a in result: result[a] += 1 else: result[a] = 1 alpha = list(result.keys()) nums = list(result.values()) max_num = max(nums) if nums.count(max_num) != 1: return '?' else: return alpha[n..

Algorithm Problems 2021.01.15

[백준] 2231 .py - 분해합

www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net n = int(input()) for i in range(n): x = i sum=i while x>0: sum += x%10 x//=10 if sum == n: print(i) break elif i==n-1: print(0)

Algorithm Problems 2021.01.15
728x90
반응형