본문 바로가기

Data Structure & Algorithm/Baekjoon Review

[Programmers] 백준허브 이미 풀었던 문제 등록 자동화 백준허브에 프로그래머스에서 이미 풀었던 문제를 올리기 까다로워서, 자동화 프로그램을 만들어보았다. 사용법은 다음과 같다.1. 프로그래머스 로그인2. 상단 메뉴 [코딩테스트] 클릭3. 필터링에서 "상태"에 "푼 문제" 체크4. 개발자도구 열기 (윈도우는 F12, 맥북은 cmd + shift + i)5. [콘솔] 탭 선택6. 아래 코드 붙여넣고 엔터7. 다될때까지 기다리기 async function waitForPageLoad(newPage) { return new Promise((resolve) => { const interval = setInterval(() => { if (newPage.document.readyState === 'complete') { .. 더보기
[BOJ] 백준허브 이미 풀었던 문제 등록 자동화 백준 허브를 뒤늦게 알아버린 1인.. 이미 1000문제 넘게 풀어서 언제 다 추가하지 했는데, 다행히 이미 풀었던 문제의 "내 제출" 페이지에 들어가면 자동으로 올려준다고 한다! 이를 이용해서 파이썬 자동화 코드를 짜보았다.import webbrowserimport timeuser_id = '' // 본인 아이디solved_problems = '' // 해결한 문제 목록 (공백으로 구분)delay_time = 0.3 // 간격 시간problem_arr = solved_problems.split(' ')for p in problem_arr: webbrowser.open_new(f'https://www.acmicpc.net/status?from_mine=1&problem_id={p}&user_id.. 더보기
[BOJ] [2563] 색종이 (Python) 내 해답) canvas = [[0 for _ in range(100)] for _ in range(100)] # 0으로 채워진 도화지 for _ in range(int(input())): x, y = map(int, input().split()) for i in range(x, x+10): for j in range(y, y+10): canvas[i][j] = 1 # 기준 지점으로부터 가로 세로 10만큼 1로 채우기 print(sum([sum(line) for line in canvas])) # 다 더하기 0으로 채워진 가로 세로 길이가 100인 도화지(2차원 배열)을 준비하고, 입력 받은 지점을 기준으로 가로 세로 길이가 10인 사각형 부분에 색종이(1)를 붙인다. 그리고 마지막에 1인 부분만 전부 세.. 더보기
[BOJ] [25314] 코딩은 체육과목 입니다 (Python) 내 해답) print("long "*(int(input())//4)+"int") long 한번에 4바이트라고 했으니, 입력으로 들어온 숫자를 4로 나눈 몫 만큼 "long"을 출력하고 뒤에 "int"를 붙여주면 된다. 리뷰) 오랜만에 들어가니 단계별로 풀어보기에 새로운 문제들이 생겼다. 길고 이쁘게 코딩해도 되지만, 빨리 빨리 하고 넘어가고 싶어서 숏코딩으로 풀어보았다. 더보기
[BOJ] [5557] 1학년 (Python) 내 해답) import sys; ip = sys.stdin.readline N = int(ip()) nl = list(map(int,ip().split())) #입력 받기 before = {0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0} after = {0:0,1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0} before[nl[0]] = 1 #초기 세팅 for i in range(1,N-1): #N번 반복 q = [k for k,v in before.items() if .. 더보기
[BOJ] [2447] 별 찍기 - 10 (Python) 내 해답) def f(n): #빈칸 뚫어주는 함수 global square k=3 while k 더보기
[BOJ] [2439] 별 찍기 - 2 (Python) 내 해답) n=int(input()) for i in range(1,n+1): print(" "*(n-i),end = "") print("*"*i) 리뷰) 반복문을 사용하면서 별이 출력되기 전 띄어쓰기가 들어가야되는 점을 고려하면 쉽게 풀 수 있다. 더보기
[BOJ] [2438] 별 찍기 - 1 (Python) 내 해답) for i in range(1,int(input())+1): print("*"*i) 리뷰) 반복문만 쓰인 가장 기초적인 별찍기 문제였다. 조금 더 가독성 높게 풀자면 다음과 같이 풀 수 있다. N = int(input()) for i in range(1,N+1): print("*"*i) 백준을 열심히 풀던 당시엔 숏코딩을 좋아했다. 더보기