본문 바로가기
11660 구간 합 구하기 5 https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 아까 개념을 2차원 배열에 적용시켜서 푸는 문제다 그림을 그리면 이해가 잘 되고 구간합 sum[i][j] = sum[i-1][j] + sum[i][j-1] - sum[i-1][j-1] + arr[i][j]; 범위로 구간합을 구할때 (x1,y1) (x2,y2) 두 좌표의 범위의 구간값은 sum[x2][y2] - sum[x1-1][y2] - sum[x2][y.. 2023. 10. 12.
11659 구간 합 구하기 11659 구간 합 구하기 몸비틀기 느낌으로 풀었는데 인덱스를 1번부터 햇으면 편햇을 것 같다 각 자리까지 배열합 = 구간합[i-1] + 배열[i] 구간합 = s[j] - s[i-1] StringTokenizer를 처음 알게 되었고 잘 사용해 보자.. BuffredReader = 0) res[i] = sum[b] - sum[a]; else res[i] = sum[b]; } for (int x : res) System.out.println(x); } } 책코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; class Main { public static.. 2023. 10. 12.
프로젝트 환경설정 프로젝트 설정 스프링 부트로 시작 정적 컨텐트는 static 폴더에 넣어두고 동적 컨텐츠는 templates 폴더에 들어간다 h2 데이터베이스 사용하기 위해 설치한 후 localhost:8082/login.do?jsessionid=eafc3b7d5a6fd1333bdfaf075ebae18d 형태로 맨 앞에 localhost를 추가하고 JDBC URL을 jdbc:h2:~/jpashop 으로 최소 한번은 해줘야한다 이후부터는 jdbc:h2:tcp://localhost/~/jpashop 으로 접속 JPA, DB 설정 동작확인 application.yml로 설정 파일을 관리한다 spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop; username : sa pa.. 2023. 10. 11.
서버 스터디 1,2,3주차 요약 1주차 IPC 통신 - 프로세스끼리 통신(전기신호를 주고받는것) IPC 통신 중에서도 소켓을 집중해서 보자 서로 다른 컴퓨터의 프로세스끼리 정보를 주고받기 위해서는 네트워크 상에서 컴퓨터를 식별하기 위해 IP주소, 어느 프로세스로 보낼 지를 알기 위해서 포트번호가 필요하다 백엔드에서는 tcp 전송을 사용한다 IPC(프로세스간 통신)을 위해서는 하드웨어를 무조건 거치고, 프로세스가 직접 하드웨어를 쓰지 않고 시스템 콜을 통해(os를 거쳐서 요청을 해서) 하드웨어를 직접 사용하지 않고 작업을 안전하게 수행한다 !여기서 프로세스가 서로 다른 컴퓨터에 잇을때 통신을 하면 네트워크 통신을 하는것 tcp, ip 등도 프로세스이고 시스템 콜이나 운영체제 자체 함수를 사용한다 네트워크에서 인터페이스 - 어려운 것을 대.. 2023. 10. 9.
컴알 시험대비 삽입, 삭제, 선택정렬은 실습 쉘, 퀵, 힙 정렬은 코드 선택정렬 - 2중 for문 인덱스 기억해서 마지막에 스왑 삽입정렬 - 1번부터 시작하는 i for문, j = i-1로 지정하고 while루프를 j가 0보다 작아지거나 j값이 key값 보다 클때까지 돌면서 값을 한칸씩 뒤로 민다, 마지막에 arr[j+1] = key 버블정렬 i for문은 i 길이만큼 j for문은 len(arr)-i-1로 n-1부터 한칸씩 줄여가면서 돈다, 최적화를 위해 arr[j]와 arr[j+1]이 바뀌지 않으면 바로 종료한다 선택정렬 항상 n**2 삽입정렬 - 역순정렬시 최악 버블정렬 - 역순정렬시 최악 쉘정렬 홀수 gap, j = i하고 반복문 돌면서 j -= gap, 반복문을 다 돌면 gap // 2 해주기 def shel.. 2023. 10. 9.
프로세스 https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 우선순위 큐를 이용하면 프로세스를 다시 넣는 2번 과정을 거치지 않아도 된다 처음에 풀때는 큐를 사용해서 해보려다가 막히고 우선순위 큐를 사용해서 꺼낸값을 초기 인덱스와 꺼낸 값의 인덱스를 비교해서 문제를 푸는식으로 이해했다 import java.util.*; class Solution { public int solution(int[] priorities, int location) { int an.. 2023. 10. 9.
5주차 DB 임포트하기 워크벤치 좌측 권한 admin으로 하고 import 클릭 default target db에는 기존에 존재하는 스키마를 넣지 않고 새 db를 만들어서 임포트 show tables; 2023. 10. 6.
5주차 5주차 퀵정렬 - 교차되면 멈추고, 피벗과 H 값 스왑, 정렬된 배열의 경우에는 최악 퀵정렬과 셀정렬은 시험에 나올지도? 6주차 탐색 이진 탐색 - 재귀 def binarySearch(arr, key, lt, rt): if lt 2023. 10. 6.
5주차 데이터 타입 함수 대소문자 - lower, upper, initcap 2023. 10. 6.
시저 암호 https://school.programmers.co.kr/learn/courses/30/lessons/12926 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.Scanner; class Solution { public String solution(String s, int n) { char[] arr = s.toCharArray(); String answer = ""; for (char x : arr) { if (Character.isLowerCase(x))x = (char) ((x+n -'a') % 26 + 'a'); el.. 2023. 10. 5.
4주차 android, iphone, windowphone; 실습 1 - 체크박스를 체크하면 토스트 메세지를 띄우는 실습 CompoundButton - 체크박스, 라디오버튼, 스위치, 토글버튼의 상위 클래스 onCheckedChanged 메서드 사용할때 호출한다 체크박스 - 여러개를 체크 가능한 체크박스 UI activity_main.xml로 가서 레이아웃을 LineayLayout으로 변경하고 윈도우폰,애플,안드로이드에 해당하는 체크박스를 만든 후 id를 할당해서 버튼 이벤트가 가능하게 한다 radio - 그룹 내의 라디오버튼은 중복으로 선택 x switch on/off 두가지 가능한 스위치 togglebutton - 밀어서 두가지중에 하나고르는 느낌의 버튼 MainActivity.java에서는 CheckBox.. 2023. 10. 3.
의존관계 자동 주입 •의존관계 자동 주입 방법 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 생성자 주입 생성자를 호출할때 의존관계를 주입하는 방식(OrderServiceImpl의 생성자에 @AutoWired를 붙인 방식) 생성자 호출시점에 딱 1번만 호출되는 것이 보장된다. 불변, 필수(final을 사용해서 널을 허용하지 않은?)적인 의존관계에 사용 *단일 생성자일때는 @AutoWired를 생략해도 자동으로 주입 된다 수정자 주입 setter라 불리는 필드의 값을 변경하는 수정자 메서드를 통해서 의존관계를 주입하는 방법 OrderServiceImpl 클래스를 수정해서 필드의 MemberRepository와 DiscountPolicy에 set~~ 형태의 수정자로 필드값을 수정해주는 방식 선택, 변.. 2023. 10. 3.
게시판 클론코딩 CRUD 까지 application.properties 설정 # 서버 포트 설정 server.port=8082 # database 연동 설정 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/board?serverTimezone=Asia/Seoul&characterEncoding=UTF-8 spring.datasource.username=board spring.datasource.password=1111 spring.thymeleaf.cache=false # spring data jpa 설정 spring.jpa.database-platform=org.hibernate.di.. 2023. 10. 3.
4주차 https://javakyu4030.tistory.com/entry/Oracle-SQL-Developer-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EA%B3%84%EC%A0%95%EC%83%9D%EC%84%B1-%EC%83%98%ED%94%8C%EC%8A%A4%ED%82%A4%EB%A7%88%EC%84%A4%EC%B9%98 Oracle SQL Developer 설치 및 계정생성 샘플스키마설치 Oracle SQL을 개인용 PC에 설치해서 실습해보기 위해서는 크게 2가지가 필요합니다. 첫 번째는 Oracle Database Express, 두 번째는 Oracle SQL Developer입니다. 지난 글에서 Oracle Database Express를 설치한 데 이어 javakyu4030.tist.. 2023. 10. 1.
4 주차 select user from user; 2023. 9. 22.
4주차 이진힙 : 완전이진트리 + 부모의 우선순위가 자식의 우선순위보다 높음 최대힙 : 내림차순, 최소힙 : 오름차순 힙 정렬 책에 나온 코드가 좀 복잡해서 gpt 돌린 코드로 이해해보자 def heapify(arr, n, i): largest = i left = 2*i right = 2*i+1 if left arr[largest]: largest = left if right arr[largest]: largest = right if largest != i : arr[i], arr[largest] = arr[largest], arr[i] heapify(arr,n,largest) def heap_sort(arr): n = len(arr) #처음에 최소 힙 만들어주기 for i in range (n // 2, 0,.. 2023. 9. 22.
데베교양 3주차 실습사이트 - livesql , https://livesql.oracle.com/apex/f?p=590:1:12681922551238:::RP:: https://livesql.oracle.com/apex/f?p=590%3A1%3A12681922551238%3A%3A%3ARP%3A%3A livesql.oracle.com SELECT문 전체 데이터 조회 select * from 데이터베이스명 •정렬 desc - 내림, asc - 올림 id를 기준으로 내림차순 정렬 해서 가져오기 select employee_id, first_name, last_name from hr.employees order by employee_id desc 뒤에 , 조건을 붙이면서 앞에 조건이 동일할때는 어떻게 정렬할지를 정해줄 수 있.. 2023. 9. 21.
소수 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/12921 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 그냥 n제곱으로 돌리면 시간초과 sqrt(n)으로 제곱근(제곱근까지 해도 그냥 소수와 결과가 같다)을 돌리거나 에라토스테네스의 체 n까지 입력받으면 인덱스를 각 자릿수로 초기화 만난 수가 0이 아니면 그 수의 배수들을 전부 0으로 바꾸는 연산을 n이 될때가지 수행 남아있는 수는 소수 에라토스테네스의 체로 구했다 import java.util.*; public class Solution { publ.. 2023. 9. 21.
안드로이드 교양 2,3주차 기본 레이아웃 리니어로 변경, 배경, 텍스트 정도 했음 버튼 정렬을 위해서 강의에서는 layout_gravity="center_horizontal"을 사용, 마진이나 패딩을 주는걸로도 가능 3주차 버튼 만들어서 클릭시 팝업 텍스트, 기본 텍스트 변경하는 기능 package com.example.mobile; import androidx.appcompat.app.AppCompatActivity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.view.inputmethod.InputMethodManager; import an.. 2023. 9. 21.
문자열 int tmp = Arrays.asList(seoul).indexOf("Kim"); String[] 배열에서 특정 문자열 위치 찾기 2023. 9. 21.