분류 전체보기

    [스프링 프로젝트] 글 상세 조회 구현 - DIV 요소 클릭 시 페이지 이동 (js)

    글 상세 조회 구현을 위해 위와 같은 페이지에서 각 목록을 클릭하면 상세 페이지로 이동하도록 하는 코드를 작성해보았다. 1. DIV 영역에 링크 걸기 일단, onclick 이벤트를 추가하는 방법이 있다.

    [이것이 취업을 위한 코딩테스트다 with 파이썬] 2강 알고리즘 성능 평가

    복잡도 알고리즘의 성능을 나타내는 척도 시간복잡도 : 특정한 크기의 입력에 대하여 알고리즘의 수행시간 분석 공간복잡도 : 특정한 크기의 입력에 대하여 알고리즘의 메모리 사용량 분석 동일한 기능을 수행하는 알고리즘이 있다면, 일반적으로 복잡도가 낮을수록 좋은 알고리즘이다. 알고리즘이 보기에 복잡해 보이는 것과는 다른 개념 빅오 표기법 가장 빠르게 증가하는 항만을 고려하는 표기법 함수의 상한만을 나타내게 됨 예를 들어 횟수가 \(3N^3 + 5N^2 + 1,000,000\)인 알고리즘이 있다면 빅오표기법에서는 차수가 가장 큰 항만 남기므로 \(O(N^3)\)으로 표현됨 빅오표기법 명칭 \(O(1)\) 상수 시간 \(O(logN)\) 로그 시간 \(O(N)\) 선형 시간 \(O(NlogN)\) 로그 선형 시간..

    백준 2875번: 대회 or 인턴 (Python)

    문제요약 ☑️ 숫자 N을 입력받아 30의 배수가 되는 가장 큰 수를 출력한다. 아이디어 🔍 어떤 값이 3의 배수가 되기 위해서는 각 자릿수의 합이 3의 배수가 되어야 한다. 30의 배수가 되기 위해서는 입력값에 0이 하나 이상 존재하고, 나머지 자릿수의 합이 3의 배수가 되어야 한다. 가장 큰 수를 출력하기 위해 각 자릿수의 값이 가장 큰 수부터 순서대로 출력한다. 코드 (Python)🧑‍💻 n = input() s = 0 l = [] if (n.find('0')==-1): print(-1) else: for i in range(len(n)): s += int(n[i]) l.append(n[i]) if(s%3==0): l = ''.join(reversed(sorted(l))) print(l) else: ..

    백준 2875번: 대회 or 인턴 (Python)

    문제요약 ☑️ 여학생 N명, 남학생 M명일 때, 전체에서 K명을 제외한 인원이 N:M=2:1의 비율로 팀을 이룬다. 이때 최대로 만들 수 있는 팀의 수를 구하는 문제이다. 아이디어 🔍 "N/2와 M을 비교하여 둘 중 작은 값이 최대로 만들 수 있는 팀의 수"라는 아이디어를 떠올렸다. 그러나 적당한 해결 방안을 찾지 못해 고민을 거듭하던 중, 비슷한 아이디어를 활용해 문제를 푸신 분이 있어 해당 블로그의 내용을 참고해 문제를 해결했다! [그리디 알고리즘] 백준 2875번 대회 or 인턴 백준 알고리즘 문제 원본 보기 문제 백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.) 백준 it-college-diary.t..

    [스프링 프로젝트] 깃허브 연동하기

    1. 깃허브 레포지토리 생성 이름 작성 → 퍼블릭 설정 그대로 → 리드미 파일 추가 → .gitignore 자바 템플릿으로 추가 → create repository! ☑️ .gitignore란 간략하게 말하자면 추적 제외 목록 설정 깃으로 버전 관리를 할 필요가 없는 파일은 gitignore 파일을 이용해 깃에게 무시하도록 알려주어야 한다. 자바 프로젝트에서 컴파일을 하면 .class 파일들이 생성되는데 github와 같은 저장소에 .class 제외하고 .java 파일만 올리고 싶을 경우에 이와 같은 역할을 해주는 것이 .gitignore이다. 사용자가 github에 commit 하지 않을 제외 목록을 설정할 수 있다. backup file, log file, 설정 파일등 민감한 정보의 보안을 위해서도 ..

    백준 11047번 : 동전 0 (Python)

    문제요약 ☑️ N종류의 동전을 이용해 K원을 만드는 최소의 동전 개수를 구하는 문제이다. 아이디어 🔍 최적의 해를 구하기 위해서 가장 큰 화폐 단위부터 나누어준다. 가지고 있는 동전 중, 가장 큰 단위가 항상 작은 단위의 배수이므로 작은 단위의 동전을 종합해 다른 해가 나올 수 없다. 입력받는 방법에 대한 고민... 리스트 a를 초기화 및 선언한 후 a에 append를 이용해 입력값을 덧붙인다. 큰 수 부터 나누기 위해 리스트를 내림차순으로 정렬한다. 코드 (Python)🧑‍💻 n, k = map(int, input().split()) a = [] cnt = 0 for i in range(int(n)): a.append(int(input())) a.sort(reverse=True) while k>0: f..

    백준 2839번 : 설탕 배달 (Python)

    문제 요약 입력한 값 N을 3과 5로 나눌 수 있는 최소의 개수를 구하는 문제이다. 아이디어 우선 4가지 경우의 수가 있다. 5kg으로 나누어 떨어질 경우 5kg과 3kg 조합 3kg으로 나누어 떨어질 경우 Nkg을 만들 수 없는 경우 설탕봉지의 최소 개수를 위해서는 큰 단위부터 가져가는 것이 효율적이다. 그러나 큰 수인 5부터 나눈 후, 그 나머지 값이 3으로 나누어 떨어진다는 보장이 없다. 또한, 큰 수인 5부터 나눈다고 최소의 개수가 출력될 수 없다. 예를 들어 11의 경우, 5부터 나누면 나머지가 1이라 5부터 나누면 최소의 개수로 묶을 수 없을 것이다. 하지만 11은 5kg 1개, 3kg 2개로 나누어 떨어지기 때문에 3을 반환해야 한다. 코드 작성 n = int(input()) cnt = 0 ..

    코드업 기초 100제 6096번 풀이 - Python

    6096 : [기초-리스트] 바둑알 십자 뒤집기(py) 시간 제한: 1 Sec 메모리 제한: 128 MB 문제 부모님을 기다리던 영일이는 검정/흰 색 바둑알을 바둑판에 꽉 채워 깔아 놓고 놀다가... "십(+)자 뒤집기를 해볼까?"하고 생각했다. 십자 뒤집기는 그 위치에 있는 모든 가로줄 돌의 색을 반대(1->0, 0->1)로 바꾼 후, 다시 그 위치에 있는 모든 세로줄 돌의 색을 반대로 바꾸는 것이다. 어떤 위치를 골라 집자 뒤집기를 하면, 그 위치를 제외한 가로줄과 세로줄의 색이 모두 반대로 바뀐다. 바둑판(19 * 19)에 흰 돌(1) 또는 검정 돌(0)이 모두 꽉 채워져 놓여있을 때, n개의 좌표를 입력받아 십(+)자 뒤집기한 결과를 출력하는 프로그램을 작성해보자. 입력 바둑알이 깔려 있는 상황이..

    코드업 기초 100제 6064번 풀이 - Python

    6064 : [기초-3항연산] 정수 3개 입력받아 가장 작은 값 출력하기(py) 시간 제한: 1 Sec 메모리 제한: 128 MB 문제 입력된 세 정수 a, b, c 중 가장 작은 값을 출력하는 프로그램을 작성해보자. 단, 3항 연산을 사용한다. 입력 3개의 정수가 공백으로 구분되어 입력된다. -2147483648 ~ +2147483648 출력 가장 작은 값을 출력한다. 입력예시 3 -1 5 출력예시 -1 나의 답안 a, b, c = map(int, input().split()) print((a if a

    코드업 기초 100제 6056번 풀이 - Python

    6056 : [기초-논리연산] 참/거짓이 서로 다를 때에만 참 출력하기(설명)(py) 시간 제한: 1 Sec 메모리 제한: 128 MB 문제 2개의 정수값이 입력될 때, 그 불 값(True/False) 이 서로 다를 때에만 True 를 출력하는 프로그램을 작성해보자. 입력 2개의 정수가 공백을 두고 입력된다. 출력 두 값의 True / False 값이 서로 다를 경우만 True 를 출력하고, 그 외의 경우에는 False 를 출력한다. 입력예시 1 1 출력예시 False 나의 답안 a, b= map(int, input().split()) c = bool(a) d = bool(b) print((c and (not d)) or ((not c) and d))