[백준 / BOJ] 2566번 최댓값 (Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2024. 3. 15. 17:17[백준 / BOJ] 2566번 최댓값 (Python)

문제 링크 : 2566번: 최댓값 (acmicpc.net) 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 🖥️ 시작하며 2차원 배열의 최댓값과 그 최댓값의 인덱스를 찾는 문제다. 아직도 C언어가 익숙한 나는 두 가지 방법으로 풀어보았다. 일반적인 방법 # 일반적인 방법, C언어 식 def findMaxIndex_C(): maxNum = float("-inf") maxRow, maxCol = 0, 0 for i in range(9): tempArr = list(map(int, input().split())) for j in ra..

[백준 / BOJ] 25206번 너의 평점은 (Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2024. 3. 14. 21:22[백준 / BOJ] 25206번 너의 평점은 (Python)

문제 링크 : 25206번: 너의 평점은 (acmicpc.net) 25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net 🖥️ 시작하며 입력 예시를 보면 과목, 성적, 학점이 한 줄이 있고 20줄을 입력받는다고 미리 명시해두었다. 그렇다면 첫 시작을 아래와 같이 할 수 있다. for _ in range(20): subject, score, grade = input().rstrip().split() score = float(score) 조건을 더 살펴보자. 전공평점은 학점 * 과목평점의 합을 학점의 총합으로 나눈 값이라 한다..

[백준 / BOJ] 10998번 팰린드롬인지 확인하기 (Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2024. 3. 13. 18:59[백준 / BOJ] 10998번 팰린드롬인지 확인하기 (Python)

문제 링크 : 10988번: 팰린드롬인지 확인하기 (acmicpc.net) 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 🖥️ 시작하며 팰린드롬은 앞으로 읽었을 때와 뒤로 읽었을 때 같은 문자라 한다. 파이썬에서는 슬라이싱 기법을 통해 간단하게 반전시키는 문법이 있으니 이를 활용하자. import sys input = sys.stdin.readline if __name__ == "__main__": text = input().rstrip() print(1) if text == text[::-1] else print(0) text[::-1]을 사용하면 reverse..

2. 2의 보수, 부동소수점 표현, 16진수, 비트 그룹 표현
◎ CS/컴퓨터구조2024. 3. 12. 20:072. 2의 보수, 부동소수점 표현, 16진수, 비트 그룹 표현

헷갈렸던 내용을 복기하며 기록하는 포스팅이라 자세하지 않을 수 있습니다. 인풋과 아웃풋이란? 메인 메모리와 IO 장치에 들어 있는 메모리 사이에 데이터를 복사해 오는 작업을 말한다. 2의 보수 2의 보수 표현법은 아래와 같은 절차를 따른다. 모든 비트에 NOT연산을 취한다. (0001 비트가 1110이 된다.) 1을 추가한다. (0001 -> 1110 -> 1111) 즉 위와 같은 절차를 따르면 10진수 -1의 2진수 표현법은 1111이 된다. 2의 보수 체계는 1의 보수 체계나 다른 음수 표현법과 달리 0을 표현하는 방법이 하나라는 장점이 있다. IEEE 부동소수점 표현법 S : 부호 exponent : 지수 fraction : 가수 32비트와 64비트 체제에서 부호는 공통적으로 1bit, 지수부는 8..

[백준 / BOJ] 2444번 별 찍기 - 7 (Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2024. 3. 12. 12:05[백준 / BOJ] 2444번 별 찍기 - 7 (Python)

🖥️ 시작하며 문제 링크 : 2444번: 별 찍기 - 7 (acmicpc.net) 2444번: 별 찍기 - 7 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 별을 출력하는 간단한 문제다. 별 찍기 문제는 대부분 수학 문제인 경우가 많다. 이번 문제도 결이 비슷하다. 문제에서 2 x N - 1번째 줄까지 차례대로 별을 출력한다 했고, 예시를 5로 주었다. N이 5라면 9줄이 출력되어야 하고, 1 - 3 - 5 - 7 - 9 - 7 - 5 - 3 - 1개의 별이 출력되어야 한다. 잘 보면, 별이 찍힌 앞의 공백이 4 -> 0 -> 4로 늘었다가 줄어드는 것을 볼 수 있다. 이를 위해 우선 처음에 공백을 색칠해주자. for i in range(1, N): for _ i..

1. 비트, 논리 연산, 비트 표현
◎ CS/컴퓨터구조2024. 3. 11. 23:221. 비트, 논리 연산, 비트 표현

헷갈렸던 내용을 복기하며 기록하는 포스팅이라 자세하지 않을 수 있습니다. 비트 우리가 사용하는 자연어에서의 문자를 컴퓨터에서는 비트라고 부른다. 비트는 2진법을 사용한다. 이는 참/거짓 같은 두 기호 중 하나만 넣을 수 있다는 뜻이다. 대표적인 비트 사용법은 앞서 말했듯이 True/False로 표현할 수 있는 질문에 대한 대답을 표현하는 것이다. 예를 들면 '추운가?' '비가 오고 있는가?'에 대한 답을 참/거짓으로 표현할 수 있고, 이러한 비트들이 표현하는 내용으로부터 새로운 비트를 만들어내는 것을 논리 연산이라 한다. 논리 연산 불리언 대수 논리 연산중에 대표적으로 불리언 대수가 있다. 이는 비트에 대해 사용할 수 있는 연산 규칙의 집합이다. NOT 논리적 반대를 의미한다. T는 F로, F는 T로 만..

▶ 잡담2024. 3. 10. 21:31Velog에서 다시 티스토리로 온 이유..

나름 애정을 두고 관리하고 포스팅도 많이 쌓였던 티스토리를 떠나려는 이유에는 두 가지가 있었다. 개발 블로그는 Velog나 Github Blog를 추천한다는 인터넷과 주변 사람들의 말. 깃허브와 Velog의 뭐랄까.. 그 가독성이 너무 좋아보였다. 그래서 처음에는 Github Blog를 시작해보았다. 인터넷에서 열심히 공부하면서 지켈도 배우고, ruby도 써보고 하면서 개설하고 초반엔 열심히 적었다. 마크다운으로 써내려가는 것도 너무 편했고 내 취향이어서 평생 쓸 줄 알았는데.. 한 번 포스팅을 삭제하고 싶어서 열심히 롤백했는데, 포스팅이 다 사라져서 복구하는 방법도 찾아보고, 다 복구도 했는데 이미지가 계속 반짝반짝 빛나는 버그도 나고.. 앞으로도 이런 버그가 계속 일어나면 물론 공부하는 보람은 있겠지..

React 기본 개념과 흐름
◎ Web/React2024. 3. 10. 18:59React 기본 개념과 흐름

🖥️ 시작하며 React는 DOM을 이용해 동적인 사이트를 만들기 위해 사용한다. 자바스크립트를 쌩으로 사용하지 않고 리액트를 쓰는 궁극적인 이유는 HTML과 기능을 구현하는 자바스크립트가 분리되어있기 때문에 앱이 커지고 방대해지면 추후 코드해석이 어려울 수 있다. 이에 반해 리액트는 하나의 기능을 하나의 파일로 유지가 가능하다. 리액트의 기초를 배우면서 필수적으로 알아둬야 할 몇가지 사항들을 기록해두려고 한다. React 작동 방식 우선 최상단의 index.html파일은 그리 다르지 않다. 여기서 를 통해 jsx 파일을 넣는 것이 핵심이다. import ReactDOM from "react-dom/client"; import App from "./App.jsx"; import "./index.css";..

Day 040 - 항공권 가격 추적 프로젝트 (심화)
◎ Python/Udemy Python2024. 3. 8. 20:27Day 040 - 항공권 가격 추적 프로젝트 (심화)

🖥️ 시작하며 이전 포스팅에서는 개인 사용자들을 위한, 로컬 사용자들만을 위한 프로그램이었습니다. 그렇다면 이번에는 여러 사용자들을 가입시켜 이메일로 할인 정보를 보내주도록 코드를 업데이트 해보도록 하겠습니다. 이 사이트와 비슷한 기능을 수행합니다! 💡 로직 순서 사용자의 성, 이름, 이메일을 받아와서 스프레드시트에 저장합니다. 사실 간단합니다. 해당 정보들만 가져오면, API 서비스를 이용해 사용자들에게 이메일만 보내면 됩니다. 주의사항! Sheety API를 사용할 때, 열의 제목을 JSON에서 취급할 때는 아래 사진과 같게 해야 합니다.. 요즈음 API를 건들 때마다 Docs를 잘 봐야겠다는 생각이 항상 드네요. 또한 이전 코드에서 고쳐야 할 점은 다음과 같습니다. 항공편이 아예 없는 경우, 오류가..

Day 039 - 항공권 가격 추적 프로젝트
◎ Python/Udemy Python2024. 3. 8. 20:24Day 039 - 항공권 가격 추적 프로젝트

로직 구글 시트에 가고 싶은 장소, 가격 상항선, 국가코드 저장 API를 이용해 Flight Search에서 가격 찾기 상한선 아래면 그에 대한 데이터와 가격을 SMS로 전송 코드 전문 # main.py from data_manager import DataManager from flight_search import FlightSearch from flight_data import FlightData from notification_manager import NotificationManager from datetime import datetime, timedelta data = DataManager() sheet_data = data.get_data() # iataCode가 비어있을 시 for i in s..

Day 038 - 구글 시트에 운동 기록
◎ Python/Udemy Python2024. 3. 8. 20:23Day 038 - 구글 시트에 운동 기록

시작하며 오늘도 초미니 프로젝트를 하나 만듭니다! 운동에 관한 자연어 처리를 해주는 뉴트리셔닉스 (Nutritionix)을 이용해 자연어 처리로 오늘 무슨 운동을 했는지 대충 입력하면, 알아서 분류해 엑셀 시트에 넣어주는 프로그램입니다. 코드 전문 # main.py from exercise import Exercise from sheety import Sheety query = input('Tell me which exercises you did : ') p1 = Exercise(query=query) p1.post_exercise() put = Sheety(p1.get_exercise()) put.post_sheety() # exercise.py """뉴트리셔닉스 핵심 코드""" from dotenv ..

Day 037 - 습관 추적기 프로젝트
◎ Python/Udemy Python2024. 3. 8. 20:17Day 037 - 습관 추적기 프로젝트

시작하며 API에서 header을 이용하면 고급 인증 방식을 쓸 수 있습니다. 또한, request 모듈에서 POST, PUT, DELETE를 사용할 수 있습니다. GET, POST, PUT, DELETE GET : 외부 시스템에 특정한 데이터를 요청합니다. POST : 외부 시스템에 데이터를 전송합니다. 전송의 성공 유무만 중요하고, 이에 대한 응답은 중요하지 않습니다. 데이터를 게시할 때 많이 사용합니다. PUT : 데이터를 업데이트합니다. DELETE : 외부 서비스의 데이터를 삭제합니다. 습관 추적기 프로젝트 이 사이트를 이용해서 습관 추적기를 만들어보겠습니다. 해당 서비스의 API 문서를 보면, 아래와 같이 코드를 짤 수 있습니다. from dotenv import load_dotenv impo..

image