본문 바로가기

반응형

전체 글

(424)
알고리즘 2인 스터디 #6주차 - 박성훈 슬슬 무감각해져가는 백준 풀이 긴말없이 바로 시작합니다. #1 백준 10216 Count Circle Groups ( G4 ) https://www.acmicpc.net/problem/10216 10216번: Count Circle Groups 백준이는 국방의 의무를 수행하기 위해 떠났다. 혹독한 훈련을 무사히 마치고 나서, 정말 잘 생겼고 코딩도 잘하는 백준은 그 특기를 살려 적군의 진영을 수학적으로 분석하는 일을 맡게 되었 www.acmicpc.net 유니온-파인드 알고리즘을 사용합니다. 입력받은 모든 점들에 대해서 직선거리를 계산해주고 반지름 두개의 합보다 짧다면 같은 그룹으로 joint 합니다. 이 과정에 O(N^2) 를 사용하고 O(N)으로 순회해주면서 그룹의 갯수를 세서 출력해주면 됩니다. 함..
알고리즘 2인 스터디 #6주차 - 이총명 문제 설명 : 그냥 소인수 분해해서 소인수를 한 줄에 하나씩 출력하면 됨. 내 코드 : n = int(input()) i = 2 goal = n output_li = [] while i
알고리즘 2인 스터디 #5주차 - 이총명 문제 설명 : 12321 , 23432 , 1818181 처럼 좌우대칭인 숫자를 찾아서 맞으면 yes , 아니면 no를 출력해야한다. 0이 입력되면 프로그램은 종료된다. 내 코드 : while True: str = input() str_li = [] if str == '0': break else: for i in str: str_li.append(i) reversed_str_li = list(reversed(str_li)) if str_li == reversed_str_li: print('yes') else: print('no') 코드 설명 : str이라는 변수에 입력값이 저장된다.(input()이기 때문에 자료형은 문자열임) while True로 반복문을 걸어놓고 str == '0'일 때 종료되게 해놨..
알고리즘 2인 스터디 #5주차 - 박성훈 4주차에 잠수를 탄 박성훈이라고 합니다 ㅠㅠ 요 몇주간 진짜 바빴어서 이것저것 잡다한 이유로 4주차는 건너뛰게 된것 같아요 그래도 백준은 그 사이에 계속 풀긴 했었습니다 ㅠㅠ 색이 연해졌지만 일단 칠해져있기는한 관계로 4주차 것까지 합쳐서 2주치 분량의 백준 문제 요약을 해보려고 합니다. #1 백준 1561 - 놀이 공원 ( G2 ) https://blog.koderpark.dev/380 백준 BOJ 1561 - 놀이 공원 https://www.acmicpc.net/problem/1561 1561번: 놀이 공원 첫째 줄에 N(1 ≤ N ≤ 2,000,000,000)과 M(1 ≤ M ≤ 10,000)이 빈칸을 사이에 두고 주어진다. 둘째 줄에는 각 놀이기구의 운행 시간을 나타내는 M개의 자연수 blog.k..
알고리즘 2인 스터디 #3주차 - 박성훈 1주차때 얘기했던 난이도 올려보겠다는 약속을 지키기 위해 고군분투중인 박성훈이다. 잡소리 없이 바로 이번주의 야무진 문제들을 알아보자. #1 백준 8983 - 사냥꾼 ( G4 ) https://blog.koderpark.dev/363 백준 BOJ 8983 - 사냥꾼 https://www.acmicpc.net/problem/8983 8983번: 사냥꾼 입력의 첫 줄에는 사대의 수 M (1 ≤ M ≤ 100,000), 동물의 수 N (1 ≤ N ≤ 100,000), 사정거리 L (1 ≤ L ≤ 1,000,000,000)이 빈칸을 사이에 두고 주어진다. 두 번째 blog.koderpark.dev 사대에서 동물을 매칭하는 일반적 발상이 아닌, 동물에 사대를 매칭해주는 정반대의 사고를 필요로 하는 문제. 사대의 ..
알고리즘 2인 스터디 #3주차 - 이총명 브론즈1 랜덤디펜스 문제 설명 : 적혀있는 예시만 보면 이해하기 어려울 수도 있는데 1로 시작하면 1 > 11 > 12 > 23 > 35 > 58 > 83 > 31 이런 식으로 진행된다. 내 코드 : cycle = 0 first = input() num = first big = 0 while True: # while True: if int(num) = 10: big = str(int(num[0]..
[Spring Boot 스터디] 류건 #3 주차 - 섹션 4, 5 스프링 빈을 등록하고, 의존관계 설정하기 회원 컨트롤러가 회원서비스와 회원 리포지토리를 사용할 수 있게 의존관계를 준비하자. 회원 컨트롤러에 의존 관계 추가 package hello.hellospring.controller; import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; // 스프링 컨테이너에 객체가 자동 생성되어 관리됨. @Controller public class MemberController { private final MemberService memberSer..
[Spring Boot 스터디] 한준교 #3 주차 - 섹션 4, 5 Section 4. 스프링 빈과 의존관계 서비스를 통해 리포지토리에 회원을 저장할 수 있게 되었음! 이제 화면을 붙이고 싶은데 → 컨트롤러와 뷰템플릿이 필요함!! MemberController 가 서비스를 통해서 회원가입과 조회를 할 수 있어야함!! → 이런 것을 의존관계 라고 한다. MemberController 를 생성한다! package hello.hellospring.controller; import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Controller pu..
[Spring Boot 스터디] 이지원 #3 주차 - 섹션 4, 5 컴포넌트 스캔과 자동 의존관계 설정 서비스를 구축하다 보면 동일한 객체 인스턴스를 프로젝트 전역에 걸쳐 공유해야할 경우가 많다. 이 경우 하나의 인스턴스를 생성한 후 어딘가에 저장해두고 다른 코드에서 그 경로를 찾아 import하는 번거로운 작업이 요구된다. Spring에서는 이러한 의존관계를 자동으로 설정해준다. @Controller @Repository @Service 등의 방법을 통해 해당 클래스를 하나의 객체 인스턴스만 생성하고 프로젝트 전역에 걸쳐 자동으로 공유되도록 구현할 수 있다. Spring 어플리케이션이 시작되면 초기 단계에서 어플리케이션이 자동으로 어플리케이션의 위치를 기준으로 모든 하위 디렉토리를 스캔하여 이런 annotation이 붙은 클래스들을 찾는다. 이후 찾은 클래스들의 인스턴..
[Spring Boot 스터디] 조현상 #3 주차 - 섹션 4,5 이번 주차에는 스프링 빈과 의존 관계 와 회원관리예제를 통해서 웹MVC 개발를 배워보았다. 우선 스프링 빈 의존 관계란 controller - service - repository 를 서로 연결 시켜주는 것을 말하는데 그동안 우리는 예를 들어 service 와 repository 를 연결시키려면 new 객체를 생성해줘서 연결 시켜보이도록 기능을 만들었었다. 근데 new 로 객체를 생성해서 만들어질 경우 서로 다른 repository를 받을 수 있고? 와 같은 문제가 있었는데 이번 시간에 이 문제를 해결하고자 하나의 repository를 가르키도록 의존관계를 배웠다. 우선 의존 관계는 컴포넌트 스캔으로 자동 의존관계 설정 방법이 있고 자바 코드로 직접 스프링 빈 등록하는 방법이 있다. 먼저 컴포넌트 스캔 ..
알고리즘 2인 스터디 #2주차 - 박성훈 문제량을 늘리고 나서 제법 여유롭게 순항하고있다. 방학의 힘은 생각보다 굉장하다는걸 온몸으로 느끼고 있는 요즈음. #1 백준 2477 - 참외밭 ( S2 ) https://blog.koderpark.dev/328 백준 BOJ 2477 - 참외밭 https://www.acmicpc.net/problem/2477 2477번: 참외밭 첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출 blog.koderpark.dev 많은_조건_분기 태그가 붙을거 같이 생긴 문제이지만, 의외로 그리 어렵지 않은 문제. 동서남북 방향을 나타내는 숫자가 들어오는 규칙을 잘 이용해서 문제를 해결할 수 있다. 편의상 앞으로..
알고리즘 2인 스터디 #2주차 - 이총명 브론즈1 랜덤디펜스 문제 설명 : 반에서 3명의 후보에 대해서 n명의 학생들이 투표를 하는데 내가 좋아하는 후보 순으로 3,2,1 점을 각각 줄 수 있다. 가장 점수의 합이 높은 후보가 뽑히고 점수가 높은 후보를 뽑고 점수가 똑같으면 3점이 많은 후보를, 3점 개수도 같으면 2점이 많은 후보를 선출하고 2점 개수도 같으면 0과 최고 점수를 출력한다. 내 코드 import sys one = [] two = [] three = [] n = int(sys.stdin.readline()) data = [(sys.stdin.readline().strip()).split() for i in range(n)] for i in data: one.append(int(i[0])) two.append(int(i[1])) t..
[알고리즘 개인 스터디] 2주차: DP 문제 풀이(11722, 15486) - 윤현승 1. DP 알고리즘 - 개념 DP(다이내믹 프로그래밍) 즉 동적인 프로그래밍이란 뜻이다. DP를 사용하는 근본적인 이유는 복잡하고 어려운 큰 문제를 작은 문제로 쪼개서 효율적으로 풀기 위함이다. - 예시 ex) 여러가지 무게의 물건들이 존재한다. 이때 5kg까지 들어갈수 있는 가방에 최대로 들어가는 무게는 몇 kg 인가? 위와 같은 문제를 경우의 수를 부분집합별로 다 따져서 구할 수 있다. 아마도 물건의 개수를 n이라고 가정하면 2^n개의 부분집합이 생길 것 같다. 적은 수의 물건에서는 별 문제가 되지 않겠지만 물건의 개수 즉 n의 값이 1000000(백만)개가 있다고 해보면 2^1000000 개의 부분 집합을 찾아야한다. 이러한 계산을 직접할 용기있는 사람은 몇 없을 것이다. 하지만 DP를 활용한다면,..
[Node.js & React.js] 인프런 강의 듣기(2) 🤭 회원가입 기능 만들기 (Node Js) Client 는 크롬 브라우저 처럼 회원가입하는 홈페이지이고 Server 는 현재 우리가 만들고 있는 것임!!! Client - Server 통신하는 법 → Body-parser 를 통해 Client 에서 보내는 정보를 받을 수 있음 (이름, 비밀번호 등) npm install body-parser --save 를 통해 다운받음! 현재 회원가입을 할 때 필요한 client 사이트를 만들지 않았기 때문에 POST MAN 을 통해 client 역할을 대신 수행할 수 있음! 구글에 POST MAN 을 검색한 후 다운로드 하고~ 그럼 준비완료…! const express = require("express"); const app = express(); const port..
[Spring Boot 스터디] 류건 #2주차 - 섹션 3 "횐님 관리 예제" 비즈니스 요구사항 정리 데이터 : 회원ID, 이름 기능 : 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음, 따라서 인터페이스 구현 후, 이를 상속받는 구현체를 생성. - 데이터 저장소가 선정되지 않았으므로 인터페이스로 구현 클래스를 변경 가능하도록 설계 - 컨트롤러: 웹 MVC의 컨트롤러 역할 - 서비스: 핵심 비즈니스 로직 구현 - 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 - 도메인: 비즈니스 도메인 객체 # 회원 도메인과 레포지토리 만들기 ```MemoryMemberRepository package hello.hellospring.repository; import hello.hellospring.domain.Member; import java.util.*; publ..
[Spring Boot 스터디] 이정욱 #2 주차 - 섹션3 [회원 관리 예제 - 백엔드 개발] **비즈니스 요구사항 정리:** - 데이터: 회원ID, 이름 - 기능: 회원 등록, 조회 - 데이터 저장소가 아직 선정되지 않았으며, 인터페이스로 구현 클래스를 변경할 수 있도록 설계 - 데이터 저장소는 RDB, NoSQL 등 다양한 저장소를 고려 중인 상황으로 가정 - 개발을 위해 초기 개발 단계에서는 가벼운 메모리 기반의 데이터 저장소를 사용 **클래스 의존관계:** - 데이터 저장소가 선정되지 않았으므로 인터페이스로 구현 클래스를 변경 가능하도록 설계 - 컨트롤러: 웹 MVC의 컨트롤러 역할 - 서비스: 핵심 비즈니스 로직 구현 - 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 - 도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등..
[Spring Boot 스터디] 한준교 #2 주차 - 섹션3 🏃 비즈니스 요구사항 정리 강의 목표가 실제 비즈니스가 아니라 스프링의 전반적인 흐름을 이해하는 것이기 때문에! → 회원ID 와 이름 만 데이터로 사용한다! → 기능은 회원 등록과 조회!! → 가상의 시나리오로 아직 데이터 저장소(DB) 가 선정되지 않음!! (기능을 파악하고 DB를 선정해보자..) 일반적인 웹 애플리케이션 계층 구조는 → 컨트롤러 : 웹 MVC의 컨트롤러 역할 → 서비스 : 핵심 비즈니스 로직 구현 ex. 중복 가입이 안되는 로직 등등 비즈니스 도메인 객체를 가지고 핵심 비즈니스 로직을 구현하는 계층이다. → 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 → 도메인 : 비즈니스 도메인 객체 ex. 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 클래..
[Spring Boot 스터디] 이지원 #2 주차 - 섹션 3 회원 domain / repository / service 구축하기 Domain 일종의 객체 모델링이라 볼 수 있을 것 같다. Repository 서비스 구축을 위해 보통 DB(데이터베이스)가 필요하지만 설계 및 개발 과정에서 DB가 준비되지 않았거나 결정되지 않았을 경우가 있다. 이를 위해 메모리를 사용하는 가상의 데이터베이스를 만들고 추후 DB와의 호환을 위해 미리 Interface를 정의하고 설계한다. Service 실제 서비스에 사용되는 비즈니스 로직이 포함된다. 예를 들어 회원가입 시 중복 아이디의 생성을 방지하거나 특정 시간동안 작성할 수 있는 게시글을 제한하는 등의 작업이 포함된다. Domain 생성 먼저 Member 도메인을 생성한다. package hello.hellospring.doma..
[Spring Boot 스터디] 조현상 #2 주차 - 섹션 3 스프링으로 회원관리예제 다루기! 우선 윈도우에서는 맥에서 커맨드 키가 컨트롤 키였고 옵션 키가 Alt 키였다 강의 영상에서 명령 키 얘기를 할 때 윈도우면 위와 같이 키를 누르면 된다. 이번 강의는 회원관리 예제를 다루는 시간이었다. 간단하게 계층 구조를 본다면 컨트롤러 -> 서비스 -> 리포지토리 -> DB 관계이고 컨트롤러, 서비스, 리포지토리는 도메인을 가지고 있다. 데베를 접근하고 DB에 저장하고 관리하는 코드들은 리포지토리에서 정의하였고 비지니스 로직들은 서비스에서 관리하는 형태였다. 그리고 도메인은 회원의 정보나 쿠폰 정보 같은 객체들을 생성해서 저장하는 클래스였다. 일단 hello.hellospring 디렉토리 안에 domain, repository, service 디렉토리를 만들었다. 먼저..
알고리즘 2인 스터디 #1주차 - 박성훈 방학동안에 내실 더 튼튼하게 다지려고 시작한 백준 랜덤디펜스 학기중에는 실버5~실버1 선에서 진행했었는데 종강후 푸는 문제들의 난이도를 좀 더 올려보고자 한다. 스트릭 유지하기 위한 하루 1문제가 아니라 문제량 조금씩 늘려서 하루 3문제에 적응하고 있는데 이를 백랜디(백준 랜덤디펜스) 가 아니라 새로 "매삼백" 으로 명명하도록 하겠다 히히 아무튼 개강 전까지 "매삼백"을 유지해보는게 목표. 푸는 문제량이 문제량인만큼 야무진 문제 몇문제만 간추려서 소개하고자 한다. #1 백준 12869번 - 뮤탈리스크 ( G4 ) https://blog.koderpark.dev/315 백준 BOJ 12869 - 뮤탈리스크 변수초기화를생활화하자! 변수초기화를생활화하자! 변수초기화를생활화하자! ㅠㅠㅠㅠ https://www...
알고리즘 2인 스터디 #1주차 - 이총명 브론즈1~실버2 랜덤디펜스 15947 아기 석환 뚜루루 뚜루 , 브론즈 1 문제 설명 : 같은 가사를 반복해서 부르는데 반복할 때마다 “tururu”와 “turu”에 “ru”를 한 번씩 더 추가한다. 입력에서 n이 가사에서 n번째 단어를 의미한다. 풀이 : 너무 쉬워서 풀이할게 없네요.. 그냥 f스트링 사용해봤고 index in [2, 3, 6, 7, 10, 11]: 이런식으로 코드의 효율성과 직관성을 높여 봤습니다 li = [ "baby", "sukhwan", "tururu", "turu", "very", "cute", "tururu", "turu", "in", "bed", "tururu", "turu", "baby", "sukhwan", ] # 14개임 n = int(input()) n = n - 1..
[인공지능 스터디] 김윤희 #2주차 모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌 섹션 7 ~ 15 #완강! 섹션7. ML의 실용과 몇가지 팁 1. 학습 rate, Overfitting, 그리고 일반화 (Regularization) learning rate 굉장히 큰 값으로 정한다면 → overshooting! cost가 줄어들지 않아요! 굉장히 작은 값으로 정한다면 → cost가 너무 작게 변해! 보통 0.01로 시작합니다! preprocessing 데이터 간 값의 차이가 너무 클 때 데이터 전처리를 해야 해! - Standardization → 값의 분산과 평균을 가지고 ! overfitting train data에만 너무 딱 맞게 학습되는 경우 oeverfitting을 해결하는 방법 - train data를 많이 가지고 있기 - features의 개수를 줄이기 - Regularization! → 일반화해요..
[알고리즘 개인 스터디] 1주차: BFS 문제 풀이(10451, 2178) - 윤현승 서론 평상시에 백준을 꾸준히 풀어야겠다고 마음먹고서 3일 정도 하다가 안 하게 된 적이 대부분이었다. 이번에는 다음학기에 알고리즘 과목도 있어서 꾸준하게 하는 것이 목표이다. 공부 방식은 최대한 골드이하의 쉬운 문제들을 직접 풀면서 가볍게 개념들을 복습하면서 공부할 거고, 언어는 c++로 해볼 것이다. BFS 알고리즘 1. 개념 BFS는 너비 우선 탐색의 약자로, 트리 또는 그래프 구조에서 하나의 정점에서 시작해서 인접한 노드들부터 탐색하면서 멀리 떨어진 정점까지 순차적으로 순회하는 방법이다. 간단히 말해서, BFS는 시작점에서부터 가까운 곳부터 차례로 탐색하면서 넓게 퍼져나가는 방법이다. BFS는 큐(queue)라는 자료구조를 사용하는데, 이유는 큐가 먼저 들어온 것을 먼저 처리하는 특성을 가지고 있어..
[파이썬 스터디] 1주차 20203059 도승준 1주차 학습에서는 파이썬 설치, 숫자 계산, 변수와 입력 사용하기, 출력 방법, 불과 비교, 논리 연산자에 대해서 공부하였다. 1주차 공부 하며 느낀 타 언어와 파이썬의 차이점 타 언어와 다르게 파이썬은 세미콜론이 필수가 아니다. 보통 사용하지 않는 편이고 사용 하는 경우에는 한줄에 여러 문장을 사용하고 싶을 때 사용한다. 어떠한 코드에 대해 설명이 필요할 때, 보통 주석을 사용하는데 한 줄만 주석 처리 하고 싶을 경우 #를 사용하고, 여러 줄을 한꺼번에 주석 처리하고 싶을때는 ''' '''(작은 따옴표 세 개), """ """(큰 따옴표 세 개)를 사용한다. 또한 파이썬은 들여쓰기가 필수적이다. 공백 2칸, 4칸 혹은 Tab 한칸으로 들여쓰기 하는 방법이 있는데, PEP에서는 공백 4칸으로 가이드를 제..
[Node.js & React.js] 인프런 강의 듣기(1) 이번에!! 인프런 강의를 통해 Node.js 와 React.js 를 살짝 맛 좀 보려고 이렇게 정리를 해보게 되었습니다... Node JS 부터 쓰윽 한 후에 React.js 로 넘어가는 흐름입니다! 그럼 시작~ Node.js 가 나옴으로 인해 js를 브라우저가 아닌 서버에서도 사용할 수 있게 됨. → python, java, php 와 같은 하나의 언어로 js를 서버에서 쓸 수 있는 언어로 생각 Express.js 란 Node.js 를 이용해서 웹사이트나 어플케이션을 만드는 것으로 Node.js 를 쉽게 이용할 수 있게 해주는 프레임워크라고 생각하면 됨! 🦦 Node.js 와 Express.js 다운로드 하기 node -v 명령어를 통해 Node.js 가 설치되어있는지 버전을 확인 만약 위와 같이 버전..

반응형