반응형

전체 글 36

[백준] 색종이

https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 백준 코딩연습 2563 주사위 세개 문제 처음엔 가로세로 길이 구해서 사각형 넓이를 직접 구해주려했는데 멍청한 생각이었다. 그냥 100*100 배열을 만들어서 사각형이 그려지는 부분만 1로 바꾸고 1의 갯수를 세면 되는거였음.. 쓸데없이 시간이 많이 들었지만 그래도 깔끔하게 성공 def cal_square_size(n): page_arr = [['0']*100 for _ in range(100)] f..

백준 코딩연습 2023.12.09

SOLID 원칙이란?

SOLID 원칙이란 객체 지향 프로그래밍(OOP)의 5가지 핵심 원리를 말한다. 5가지 원칙의 약자를 따서 S.O.L.I.D 원칙인데 아래에서 하나하나 살펴보면서 공부해보도록 하자 단일 책임의 원칙(SRP, Single Responsibility Principle) 이론적으로는 하나의 클래스는 하나의 책임을 져야한다는 원칙이다. 쉽게 풀어서 말하자면 클래스가 변경되는 이유가 한가지만 있어야지 여러가지 이유로 클래스가 변경되어야 하면 시스템의 유지보수 측면에서 까다로워 질 수 있다는 말이다. 아래에서 한가지 예시를 들어보자 from pathlib import Path from zipfile import ZipFile class FileManager: def __init__(self, filename): s..

프로그래밍 2023.12.07

[백준] 주사위 세개

https://www.acmicpc.net/problem/2480 2480번: 주사위 세개 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 www.acmicpc.net 백준 코딩연습 2480 주사위 세개 문제 특별히 제한사항은 없으니까 문제만 잘 읽고 풀어보자 이것도 입력은 공백으로 구분하니까 split()을 사용하자 사용언어 : python3 # 주사위 눈별로 점수계산해주는 함수 def calPrice(a,b,c): price = 0 if a == b == c: price = 10000 + (a*1000) elif a == b or a == c..

백준 코딩연습 2023.12.06

싱글톤(Singleton) 패턴 파헤치기

싱글톤 패턴(Singleton pattern)이란? 싱글톤 패턴은 디자인 패턴중에 가장 간단한 패턴이다. 간단한만큼 자세하게 설명해놓은 글들이 많지 않으니까 정리하면서 잘 공부해보자. 싱글톤 패턴이란 단 하나의 객체를 만들기 위한 패턴이다. 객체가 필요할 때마다 새로 만드는게 아니라 최초에 한번 고정된 메모리 영역을 만들고 객체가 필요한 시점마다 만들어져있는것을 불러와서 사용하는 기법을 말한다. 이렇게 만들면 처음 new 연산자를 통해 만들어진 메모리 영역만 사용하기 때문에 메모리 절약에도 좋고 이미 생성된 객체를 활용하니 속도 측면에서도 좋다고 볼 수 있다. 얼핏 보면 전역변수와 같은 역할을 하는것 같지만 전역변수는 클래스가 사용되지 않을 때에도 메모리를 차지하고 싱글톤 패턴은 클래스가 사용될 때만 메..

디자인패턴 2023.12.06

[백준] 너의 평점은

https://www.acmicpc.net/problem/25206 25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net 백준 코딩연습 너의 평점은 문제 입력이 공백으로 구분되어 지어지기 때문에 이번에도 split()을 사용해서 입력받아야 한다. 제한사항은 다음과 같으니까 코딩할 때 참고해서 하도록 하자 1 ≤ 과목명의 길이 ≤ 50 과목명은 알파벳 대소문자 또는 숫자로만 이루어져 있으며, 띄어쓰기 없이 주어진다. 입력으로 주어지는 모든 과목명은 서로 다르다. 학점은 1.0,2.0,3.0,4.0중 하나이다. 등급은 A+,..

백준 코딩연습 2023.12.04

MVC 패턴 파헤치기

오늘은 수많은 디자인 패턴 중 MVC 패턴에 대해 알아보자 MVC 패턴이란? 소프트웨어 설계와 관련된 디자인 패턴이다. Model View Controller의 약자이다. 특정 프레임워크나 라이브러리를 지칭하는것이 아니라 소프트웨어가 작동하는 패턴을 의미한다. Laravel PHP, Django Python, Express JS, Angular JS 등이 MVC 패턴을 띄고있다. MVC패턴 구조 간단하게 설명하자면 위 그림과 같다. 사용자가 Controller에 요청사항을 보내게 되면 Controller는 Model로 요청사항을 전달하고 Model에서는 요청사항에 따라 DB에 접근하여 내용을 수정하거나 꺼내서 Controller로 다시 보낸다 Controller는 변경된 부분을 View에게 전달하고 Vi..

디자인패턴 2023.12.04

[백준]오븐시계 문제

https://www.acmicpc.net/problem/2525 2525번: 오븐 시계 첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.) www.acmicpc.net 백준 코딩연습 오븐시계 문제 랜덤으로 시간을 입력받아서 푸는 문제인가 싶어서 랜덤시간을 생성 후 구현해봤다. import random def cal_oven(a,b,c): quo = c // 60 rem = c % 60 a = ((a + quo) + ((b + rem)//60))%24 b = (b + rem)%60 print(a, b) a = random.randint(0,24) b ..

백준 코딩연습 2023.12.04

동기식 프로그램 비동기식 프로그램 ,블럭 논블럭 비교

보통 블럭(Blocking)과 동기(Synchronous)가 다른 개념이고 논블럭(Non-Blocking)과 비동기(Asynchoronous)가 다른 개념이라는 것을 먼저 이해하고 시작해야한다. 동기식 프로그램이란? 특징 : 요청과 응답이 동시에 일어남. 즉, 요청에 대한 응답이 나올때까지 기다렸다가 다음 요청을 수행한다. 장점 : 설계가 간단하고 직관적이다. 단점 : 요청에 대한 결과가 반환되기까지 기다려야 하므로 웹페이지의 속도와 성능이 저하될 수 있다. UX가 불편하다 예시 코드 import time # 동기 프로그래밍 def sync_task(n): print(f"----요청사항 {n} 시작----") for i in range(1,n+1): print(f"{i}/{n} 진행중") time.sle..

웹개발 2023.12.03

사신 키우기 공략 #5 ( 물리공격 테크, 스킬트리, 펜던트 )

오늘은 지난번에 이어 사신키우기 물리테크를 공략해보도록 하겠습니다. 이전 글을 보지 않았다면 아래를 먼저 보고 오시길 추천드립니다. 사신키우기 공략#4 (스킬트리) 사신 키우기 공략 #4 ( 스킬, 스킬트리, 스킬선마 ) 이전 공략글을 아직 보지 않으신 분은 이전 공략글 먼저 읽고 오시길 바랍니다. 사신키우기 공략#1 사신 키우기 공략 #1 ( 쿠폰, 사용방법, 기본) 오늘 리뷰해볼 게임은 유튜브에서 광고가 많이 나 jakhobby.tistory.com 오늘 공략해 드릴 것은 자동사냥 속도와 직결되며 후반부 수호룡을 잡으실 때 물리계열 공격을 주로 하실 분들을 위한 것입니다. 크게 펜던트, 스킬 트리, 코스튬 3가지로 나눠서 알려드리도록 하겠습니다. 펜던트 펜던트는 초반부에 사용하는 펜던트와 후반부 펜던..

사신 키우기 공략 #4 ( 스킬, 스킬트리, 스킬선마 )

이전 공략글을 아직 보지 않으신 분은 이전 공략글 먼저 읽고 오시길 바랍니다. 사신키우기 공략#1 사신 키우기 공략 #1 ( 쿠폰, 사용방법, 기본) 오늘 리뷰해볼 게임은 유튜브에서 광고가 많이 나오는 사신 키우기라는 게임입니다. 간편한 조작성을 가지고 있으며 게임 내에서 캐시 기능을 하는 블러드 스톤을 뿌리는 게임이라 초보자분들 jakhobby.tistory.com 사신키우기 공략#2 사신 키우기 공략 #2 ( 상점, 패키지, 재화) 이전 글을 보고 오지 않으셨다면 이전 포스팅 먼저 봐주세요 사신 키우기 공략#1(쿠폰, 사용방법, 기본) 사신 키우기 공략 #1 ( 쿠폰, 사용방법, 기본) 오늘 리뷰해볼 게임은 유튜브에서 광고가 많 jakhobby.tistory.com 사신키우기 공략#3 사신 키우기 공..

반응형