백준 2720번 문제 세탁소 사장 동혁 greedy 알고리즘 문제 https://www.acmicpc.net/problem/2720 2720번: 세탁소 사장 동혁 각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다. www.acmicpc.net 문제 풀이 중고등학생 때 풀던 동적 최소 개수 문제랑 똑같다. 괜히 영어동전으로 만들어놨다고 쫄 필요 없다. 거슬러줘야 하는 값을 m에 배열로 담고 현재 m을 coin의 큰 값부터 나누어 몫은 출력할 문자열에 추가, 나머지는 원래 m에 다시 저장하기를 동전 종류 수 만큼 반복한다. 해답 코드 Python #백준 2720 세탁소 사장 동혁 greedy from sys import stdin #입력, 사용..
전체 글
삼시세끼 잔잔하게 개발하는 프로그래밍 수련기 : Spring boot, Algorithm, Android백준 10162번 문제 전자레인지 greedy 알고리즘 문제 https://www.acmicpc.net/problem/10162 10162번: 전자레인지 3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은 www.acmicpc.net 문제 풀이 어렵지 않은 문제. 중고등학생 때 풀던 동전 최소 개수 문제랑 똑같다 출력조건에 따라 1의 자리가 0이 아니면 주어진 숫자로는 만들 수 없는 수이니 -1을 출력하고 1의 자리가 0이면 T를 큰 값부터 나누어 몫은 카운트에 저장하고 나머지는 T에 다시 저장을 반복한다. 해답 코드 Python # 백준 10162 전자레인..
백준 2231번 문제 분해합 완전탐색(브루트포스) 문제 https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 문제 풀이 완전 탐색 - 어떤 수의 생성자는 원래 수보다 무조건 작으므로 0부터 N-1까지 다 계산해 봄 부분 코드 설명 isum = sum(list(map(int, str(i)))) 숫자 i를 string으로 형변환한다. 파이썬의 string은 배열처럼 사용할 수 있다. 한 글자씩 나눠져서 배열이 됨 list(m..
백준 2798번 문제 블랙잭 완전탐색(브루트포스) 문제 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 문제 풀이 완전탐색 : 가능한 모든 경우의 수를 탐색하는 방법 N개의 수 중 3개를 비복원추출하는 모든 경우의 수를 탐색한다. 탐색하여 sum 값이 M보다 작거나 같은 값들 중 가장 큰 값을 구한다. 해답 코드 Python #백준 2798 블랙잭 #입력받는 방법 한 번 정리하기 #문제똑바로 읽기..^^ :
습관적으로 git add . 명령을 쓰다가 전체 파일 말고 일부 파일만 add해 따로 commit하고 싶어졌다. 방금 add 한 걸 취소해보자 #add 한 전체 파일을 취소 git reset HEAD #특정 파일만 add 취소 git reset HEAD
백준 15829번 문제 Hashing 해싱 50점 풀이와 100점 풀이가 있는 문제이다. 둘 다 적겠다 https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 100점 문제 풀이 알파벳을 의미하는 숫자 반환 함수 - 유니코드 활용 ord() 입력된 알파벳을 숫자로 만들고 해시값 계산 100점 해답 코드 Python #백준 15829 Hashing - 100점 from sys import stdin #데이터 입력 L = int(stdin.readlin..
얼마전에 highlight.js 사이트를 이용해서 테마를 설정했는데 글을 쓰다보니 어떨 땐 적용이 되고 어떨 땐 적용이 제대로 안 되는 것 테마 적용하는 방법을 잘못한 줄 알고 한참 헤맸는데 해결법 코드 블럭 넣을 때 저기 언어설정이 제대로 되어있는 지 확인하자..^^ 테마 안 쓸 땐 뭘로 해놔도 티스토리 기본테마는 똑같았기 때문에 신경을 안쓰고 살았는데.. 한 번씩 확인하기! 테마 설정하는 법이 궁금하다면 아래 글로 https://onedaythreecoding.tistory.com/entry/Tistory-%ED%8B%B0%EC%8A%A4%ED%86%A0%EB%A6%AC-%EC%BD%94%EB%93%9C%EB%B8%94%EB%9F%AD-%ED%85%8C%EB%A7%88-%EC%83%89%EC%83%8..
백준 12605번 문제 단어순서 뒤집기 https://www.acmicpc.net/problem/12605 12605번: 단어순서 뒤집기 스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만 www.acmicpc.net 스택을 활용하는 문제 문제풀이 데이터 입력받을 배열과 결과물 넣을 배열 선언 데이터 하나씩 돌면서 스페이스바 기준으로 단어를 잘라 새 배열 slist를 만듦. slist의 값을 역순으로, 준비된 temp에 넣고 temp 하나가 다 만들어지면, 결과물 result에 저장. 해답 코드 python #12605 from sys import stdin #전체 개수..
백준 2161번 문제 카드1 https://www.acmicpc.net/problem/2161 2161번: 카드1 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 큐를 사용하는 문제이다. 문제 풀이 전체 갯수 입력받고 데이터 입력받을 배열과 결과값 넣을 배열 생성 throw : 카드를 버릴 차례라면 True, 뒤로 넣을 차례라면 False를 담는 변수 데이터 배열 data에 값이 계속 추가되므로 data의 현재 길이를 이용해 data배열이 끝날때까지 반복하도록 함 해답 코드 python #2161 #comm. 파이썬 que문제는..
백준 17608번 문제 https://www.acmicpc.net/problem/17608 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net 스택을 활용하는 문제라고 함 문제풀이 전체 개수와 데이터 입력받고 데이터 뒤에서부터 돌면서 현재까지 가장 큰 값은 curBig에 저장. curBig보다 크면 count에 +1하고 curBig값으로 업데이트한다. 해답 코드 python #17608 from sys import stdin #전체 개수와 데이터 입력받 n = int(input()) data = [0]*n for i i..
알고리즘 공부, 문제풀이, 개념 정리!
github에서 토큰을 발급하는 방법을 알아보자! 요약 : Settings > Developer settings > Personal access tokens > Generate new token github에 로그인 후 우측 상단 내 프로필을 누르면 뜨는 메뉴들 그 중 Settings 클릭 좌측 메뉴들 중 아래로 내려가면 있는 Developer settings 클릭 Personal access tokens 클릭 그러면 내가 그동안 발급했던 토큰들과 토큰들의 유효기간, 토큰 발급 시 설정했던 이름이 쭉 보이고 우측 상단에 Generate new token 클릭 토큰에 이름을 설정하고(이 이름은 딱히 사용되는 곳이 없고 내가 식별하기 위함이므로 한글 섞고 맘대로 정해도 됨) 토큰의 유효기간을 설정한다. 그리..
동적할당과 정적할당 개념은 프로그램 실행에 필요한 메모리를 할당 하는 방식을 의미한다. 동적 할당 : 메모리 할당이 프로그램이 실행되는 시간 동안 그 안에 이루어지는 것. 상황에 따라 원하는(필요한) 만큼의 메모리가 할당되고 사용하지 않는 메모리는 반환하여 메모리 효율성을 높인다. 이미 할당된 메모리의 크기도 조정이 가능하다. 정적 할당 : 메모리 할당이 프로그램 실행 시작되는 순간 모두 이루어지는 것 C에서는 메모리의 주소값을 포인터라는 것을 활용해 다룬다. Java에서는 모든 것들(정확x)이 기본적으로 동적할당된다. 그리고 C와 달리 메모리의 주소값을 다루지 않는다. 포인터라는 개념이 없다. 대신 각각의 객체를 식별하기 위한 "참조값"이라는 것을 갖는다. 참조자료형은 값을 직접 갖는 것이 아니라 값을..
티스토리 블로그의 코드블럭은 아무 테마도 적용해 주지 않으면 참 가독성이 별로다.. 웬만하면 플레인을 좋아하는 나로서도 너무너무너무 별로다. 이걸 코드블럭이라고 부르기가 이상할 정도다 ㅋㅋㅋㅋ 하이라이트가 하나도 없는 회색 코드블럭. 바꿔보자 https://highlightjs.org/ highlight.js Version 10.3.2 Tiny tiny release, just to fix the website incorrectly not listing Javascript in the list of languages you could choose for a custom build. There are no other changes. highlightjs.org 위 사이트에 들어가서 196 languages..
개발 관련 자잘한 공부 상자