![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bbNB05/btrsxgbpkrs/AbbroS2GLAHJTI9RPil8b1/img.png)
스프링 토이 프로젝트 중에 GitHub API for Java 라는 걸 발견해 간단히 사용 방법을 적어보고자 한다. 구글링해도 자료가 너 ~ 무 없어서 꼬박 이틀을 허비했던 나와 다르게.. 이 글을 읽는 분들은 금방 해내길 바라며 .. 😇 나는 사진과 같이 GitHub API를 이용해 유저들의 커밋 기록을 불러오고, 출석부 형태로 보여주는 기능을 구현하고 싶었다. GitHub API for Java 먼저 build.gradle에 GitHub API 라이브러리를 추가하도록 한다. 아래 링크를 통해 라이브러리 다운로드 방법, API 문서를 자세히 확인할 수 있다. https://github-api.kohsuke.org/ GitHub API for Java – What is this? This library ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/nLGgc/btrsc1LkdmL/g7dbVqvYhSiNv1qsVgR330/img.png)
풀이 준원이가 5000원 메뉴를 골라도, 1000원 메뉴를 고르더라도 일단 N일 동안 1000 * N 원만큼의 최소 비용은 반드시 사용해야만 한다. 먼저 입력받은 (A, B) 값을 구조체 배열에 저장하고, A 값을 기준으로 배열을 내림차순 정렬해주었다. 그 다음에 배열의 인덱스 0부터 1000 * N 이라는 최소 비용에 4000원(5000 - 1000)을 더해가면서 X 원을 넘기지 않을 때까지 A 값을 더해준다. X 원을 초과해야 되면 그 때부터 B 값을 더하면 된다. 딴 말이지만 제주대 학점교류로 승마 교양 듣고 싶다 ..🙃 코드 #include #include #define MAX 100020 using namespace std; typedef struct { int a; int b; } menu; ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/zHTJ9/btrr9fJ76ON/lbRhkjtAhpyUdcU1jRqs7K/img.png)
풀이 설명이 부족한 것 같아서 예제를 들고와봤다. 입력 1처럼 N = 4, K = 2가 주어지면 1, 2, 3, 4의 숫자 중에서 왼쪽의 숫자가 오른쪽의 숫자보다 큰 경우의 수가 2개 있어야 한다. (ex: 3 1 2 4 또는 1 4 2 3 등) 다양한 풀이 방법이 있겠지만 나는 N 크기로 오름차순 정렬이 되어있는 배열을 먼저 만든 다음, 배열의 끝에서부터 K번 만큼 왼쪽 숫자와 위치를 바꾸도록 코드를 작성했다. 여기서 주의할 점은 입력 2처럼 K가 N보다 더 크게 주어지는 상황인데, 이럴 때에는 이미 N-1번의 반복을 통해서 가장 왼쪽으로 간 최대값을 다시 오른쪽과 스왑하면 안되기 때문에 반복문으로 왼쪽 요소들을 스왑 대상에서 제외시켜주는 작업을 추가해주었다. 코드 #include #define MAX..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cSJKX5/btrr2zP5ehv/xFtFVNO6FSlmaZsRkqixa0/img.png)
풀이 string 변수에서 substr(index, count) 메소드를 사용하면 index 부터 index + count 까지의 string 값을 반환한다. substr() 메소드로 모든 접미사를 만들어 배열에 저장한 다음, sort() 함수로 배열을 정렬해 차례대로 출력했다. 코드 #include #include #define MAX 1000 using namespace std; void init() { cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0); } string S; string arr[MAX]; int main() { cin >> S; for (int i = 0; i < S.size(); i++) arr[i] = S.substr(i); sort..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/lXWyx/btrr6znCqSR/uvtZhSKLFRMKaWJyDaPgBk/img.png)
풀이 무식하게 반복문 여러 개로 풀면 안될까봐 엄청 고민했는데, 그냥 무식하게 풀면 된다 🤯 주어진 단어들을 모두 두 개씩 뽑아 합쳐보면서 팰린드롬인지, 아닌지 확인하면 된다. 코드 #include #include #define MAX_K 101 using namespace std; int T, k; string answer; string words[MAX_K]; void init() { cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0); } int main() { init(); cin >> T; while (T--) { bool find = false; cin >> k; for (int i = 0; i > words[i]; }..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bdvdmy/btrr4QJUfaG/Lz3hP5UyNSFDxoAS8hQQMK/img.png)
풀이 공백을 포함해 한 줄을 입력받기 위해서는 string 헤더의 getline()이라는 메소드를 사용해야 한다. 단, 아래 코드처럼 cin으로 먼저 입력값을 받은 뒤에 getline() 메소드를 사용해야 할 때에는 cin.ignore(); 을 통해 cin으로 들어온 공백 값을 입력 스트림에서 제거해줘야 한다. 요약하자면 다음과 같다. #include #include using namespace std; int main() { int N; string S; cin >> N; cin.ignore(); getline(cin, S); } 문제를 해결하기 위해 알파벳 개수인 26 크기의 bool 배열을 생성하고, 각 인덱스가 의미하는 알파벳이 문자열에 존재하는지 여부를 체크했다. 구글링해보면 잘 나와있겠지만 '..
- Total
- Today
- Yesterday
- 버추억박스에러
- E_FAIL
- awk프로그램
- 리눅스
- Linux
- SELECT #SELECTFROM #WHERE #ORDERBY #GROUPBY #HAVING #EXISTS #NOTEXISTS #UNION #MINUS #INTERSECTION #SQL #SQLPLUS
- linux파일
- 버추억박스오류
- api문서
- cron시스템
- atq
- 쇼미더코드
- linuxgedit
- linuxawk
- GithubAPI
- Baekjoon27211
- whatis
- GitHubAPIforJava
- 백준
- 사용자ID
- virtualbox
- 백준27211
- 코테
- cat
- Baekjoon27219
- OnActivityForResult
- 리눅스cron
- baekjoon
- linuxtouch
- 백준27219
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |