본문 바로가기

분류 전체보기

(107)
백준 - 2444(별찍기-7, python) https://www.acmicpc.net/problem/2444 2444번: 별 찍기 - 7 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 접근 구현 피지컬을 점검하기 좋은 별찍기 문제 문제에서 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. 라고 주어져 복잡하게 계산할 필요는 없었다. n = int(input()) for i in range(1, n+1): print(' '*(n-i)+'*'*(2*i-1)) for i in range(n-1,0,-1): print(' '*(n-i)+'*'*(2*i-1))
백준 - 25206(너의 평점은, python) https://www.acmicpc.net/problem/25206 25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net 문제 접근 처음엔 단순히 평점을 구한다고 생각해서 과목별 등급 / 과목수로 멋대로 생각했다. 전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다. 라는 조건이 문제에 있었고 코드를 수정했다. 정답 코드 dic = {'A+':4.5, 'A0':4.0, 'B+':3.5, 'B0':3.0, 'C+':2.5, 'C0':2.0, 'D+':1.5, 'D0':1.0, 'F':0} tota..
백준 - 11718(그대로 출력하기, python) https://www.acmicpc.net/problem/11718 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시 www.acmicpc.net 문제 접근 그냥 입력받은대로 출력하는 문제 단 입력값끝에 종료를 알리는 구문이 아예없어서 따로 예외처리를 해줘야하는 문제 정답코드 while True : try : print(input()) except EOFError: break
백준- 11650(좌표 정렬하기, python) https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 정답 코드 import sys input = sys.stdin.readline n = int(input()) li = [] for i in range(n): [a, b] = map(int, input().split()) li.append([a, b]) li_sort = sorted(li) for i in range(n): print(li_sor..
백준 - 2164(카드2, python) https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 문제 접근 전형적인 자료구조 활용문제 FIFO 형태이니 큐를 활용하였음 코드 import queue n = int(input()) q = queue.Queue() for i in range(1, n+1): q.put(i) while(q.qsize() != 1): q.get() q.put(q.get()) print(q.get()) 결론은 시간초과...그래서 큐를 안쓰고 문자열을 이용해봤다...결과는..
백준 - 11050(이항 계수, python) https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 문제 접근 nCk : (n! / k!(n - k)!)를 출력해주는 문제 파이썬의 math에서 factorial을 import해줘도되고 factrorial을 직접 만들어도 된다. math 라이브러리를 활용한 코드 from math import factorial n, k = map(int, input().split()) b = factorial(n) // (factorial(k) * factorial(n-k)) print(b) 직접 구현한 코드 def factorial(n):..
백준-1018(체스판 다시 칠하기, python) https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제 분석 완전탐색문제 배열을 8칸씩 잘라서 w로 시작할때 다시칠해야하는 경우, b로 시작할때 다시칠해야하는 경우로 나눔 모든 경우의 수를 구한 후 제일 작은 경우의 수를 출력 정답 코드 n, m = map(int, input().split(" ")) #원래의 판 저장 original = [] #바뀐 체스판의 개수 count = [] for _ in range(n): original.app..
프로그래머스 - 덧칠하기(lv1, python) https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 전체 구역 개수(n), 한번에 칠할 수 있는 개수(m), 칠해야하는 구역(section)이 주어질 때, 위와 같이 페인트를 덧칠하려는데 다시 칠해야하는 최소 횟수를 구하는 문제 작성한 코드(시간초과) def solution(n, m, section): answer = 0 #전체 구역 s = [1] * n #칠해야할 구역 for i in section: s[i-1] = 0 #안 칠한 구..