본문 바로가기

컴공14

[C++] [백준 15552] 빠른 A+B 문제 풀기 전 생각 : /* 이 문제가 말하려는 것은 아마도 입출력에서 걸리는 시간을 줄일 줄 알아야 한다는 것 같다 printf scanf 함수들을 사용하면 큰 문제 없이 풀 수 있는 문제이다 */ #include int main() { int n,a,b; scanf("%d",&n); for(int i=0 ; i> T; for (int i = 0; i > A >> B; sstream 2021. 8. 9.
4. dialogue system 구축 한동안 알바와 캠프 문제 푸느라 방학 프로젝트를 놨었다... 그리고 요 며칠동안 npc랑 대화하는 기능을 구현하려고 했는데 아무리 유튜브를 찾아 봐도 볼트로 대화 시스템을 구축하는 방법은 나와있지 않았다. 내가 직접 만드는 건 너무 어렵고 오래 걸리는 방법이기에 이미 만들어진 에셋을 사용하기로 했다. 여러 에셋들을 사용해보면서 어느것이 작동되는지 그리고 어느것이 볼트랑 연동이 되는지 테스트 해보았다. 그리고 오늘 오전내내 dialogue system만 붙잡으면서 어느정도 에셋 사용에 성공했다. 이런 식으로 그래프를 사용해서 대화를 만들어두면 실제 게임에서 이런 대사들을 엔피시를 클릭하거나 말을 걸었을때 출력하도록 할 수 있다. 이런식으로 출력이 된다. 대화창 같은 경우엔 커스터마이징이 가능한 것으로 보인.. 2021. 7. 21.
[C++] [백준 2163] 초콜릿 자르기 (pps 5-1) 문제 풀기 전 생각 : /* 초콜릿을 최소한의 자르기로 1x1로 자르기 위해선 더 긴 모양이 나오도록 자르고 긴 모양으로 나온것을 쪼개는 것이 가장 적은 횟수의 자르기로 자를 수 있다. 예를 들어 ***** ***** ***** ***** 의 5x4 초콜릿이 있다고 한다면 ***** ***** ***** *****로 나누면 3번의 자르기 그리고 ***** 를 * * * * *로 나누기 위해 4번의 자르기 그리고 ****가 세개 있으니 4번씩 4회 자른 셈이다 그렇게 총 19번의 자르기로 자를 수 있다 결국 5x4 = 20 20-1 == 19 a * b - 1 가 답이다. */ https://www.acmicpc.net/problem/2163 2163번: 초콜릿 자르기 정화는 N×M 크기의 초콜릿을 하나 .. 2021. 7. 18.
[C++] [LeetCode 860] Lemonade Change (pps 3-7) 문제 풀기 전 생각 : /* 먼저 동전이 입력되었을 때 5코인이 지불되었다면 가능한 경우의 수는 5코인이 하나 증가하는 것 뿐이다. 10 코인이 지불 되었다면 가능한 경우의 수는 10코인이 하나 증가하고 5코인이 하나 감소하는 것이다. 만약 5코인을 하나 감소시킨 뒤 5코인이 0보다 작으면 false 를 리턴한다. 20 코인이 지불 되었다면 가능한 경우의 수는 10코인이 하나 감소하고 5코인이 하나 감소하거나 5코인이 세개 감소하는 것이다 만약 두가지 경우 모두 5코인과 10코인의 수가 부족하다면 false를 리턴한다. 그리고 만약 모든 작업이 리턴이 되지 않고 정상적으로 끝났다면 true를 리턴한다. */ class Solution { public: bool lemonadeChange(vector& b.. 2021. 7. 16.
코딩으로 알바하기 마지막 드뎌 오늘 모든 일을 다 끝냈다 이제 캠프와 프로젝트에 집중할 수 있을것 같다. 짧은 소감으로는 항상 몸으로 때우는 일만 하다가 머리로 하는 일을 하니 확실히 몸이 편했다 근데 이게 문제는 몸이 편하다 보니까 좀 늘어지는 감이 없잖아 있었던 것 같다. 내가 배우고 공부한 것들이 나에게 돈을 벌어다 준다는 것이 생각보다 큰 의미로 남을 것 같다. 이 돈으로 부모님 뭐라도 사드리고 제주도에 캠프 갔다 올 때 경비로 써야겠다. 뭔가 열심히 글 올리던거에 비하면 마지막이 좀 내용이 없는것 같지만 기분 탓입니다. ㅎㅎㅎ 2021. 7. 15.
코딩으로 알바하기 5 & 6 일차 5일차는 3,4일차에 했던 작업을 했습니다. 쓸게 딱히 없어서 6일차에 꼽사리 껴서 올립니다! 본론으로 바로 들어가겠숨다 위의 사진이 바로 알바로 요청받은 프로그램입니다. 간단한 소개를 하자면 은행에서 후원내역을 api로 제공하는데 엑셀로 다운 받고 회원 관리 소프트웨어인 MRM에서 납부구분 리스트와 후원자 리스트를 다운 받아서 위의 파일 세개의 위치를 입력하면 자동으로 요청받은 형식으로 csv 파일을 변환해줍니다. 예를 들어 ECC와 TIM 중에 선택을 하지 않으면 선택해달라는 문구가 출력되고 그리고 위와 마찬가지로 위치가 입력되지 않은 파일이 있다면 해당 파일의 위치를 입력하달라고 안내합니다. 그리고 만약 모든 파일의 위치가 올바르다면 작업이 실행됩니다!! 실제 리스트는 일급비밀 사항이기에 파일이 이.. 2021. 7. 15.
[C++] [백준 17211] 좋은 날 싫은 날 (pps 3-5) 문제 풀기 전 생각 : /* 0) (기분 좋은 날) 다음날 기분 좋을 확률 1) (기분 좋은 날) 다음날 기분 안 좋을 확률 2) (기분 안 좋은 날) 다음날 기분 좋을 확률 3) (기분 안 좋은 날) 다음날 기분 안 좋을 확률 N일째에 기분이 좋을 확률은 : N-1 일째가 기분 좋은 날 일수도 있고 안 좋은 날 일수도 있다. 따라서 두 가지 경우의 확률 모두 더해야 N일째 기분이 좋을 확률이다. N일째에 기분이 안 좋을 확률 또한 위와 같다. 두 가지 경우 모두 고려해야 한다. 따라서 tmp1 = h*m[0] + s*m[2]; tmp2 = s*m[3] + h*m[1]; h = tmp1; s = tmp2; 로 반복한다면 기분 좋을 확률과 기분이 안 좋을 확률을 구할 수 있다. */ #include #in.. 2021. 7. 13.
코딩으로 알바하기 4일차 오늘은 어제와 그제 하던 파일 마무리를 지었다. 노가다로 해결해야 하는 부분은 미리 다 해놨기에 오늘은 몸이 참 편했다 내일 이제 파일 하나 마저 마무리 짓고 자바 스윙으로 요청하신 엑셀 형식 변환 프로그램을 만들어야 하는데 자바 스윙으로 exe 파일로 빌드하는 과정도 공부가 조금 필요할 것 같다. 수업 때 만들어본 예시들을 가져다 쓰면 디자인은 조금 구려도 개발 기간은 단축될거라고 생각한다. 얼른 끝내고 방프랑 캠프에 더 집중해야겠다;;; 2021. 7. 13.
[C++] [백준 17210] 문문문 (pps 3-4) 문제 풀기 전 생각 : 문제를 풀기전에 문제를 정독했다. 조건이 여러개라 복잡해보이지만 자세히 들여다보면 생각보다 쉬운 문제이다 조건문을 여러개 써야 할 것 같지만 2의 배수는 2의 배수끼리 같은 방식으로 열어야 하며 3의 배수 또한 3의 배수끼리 같은 방식으로 열어야 한다 그리고 연속으로 같은 방식으로 열수 없다. 그럼 2번째 문과 3번째 문을 여는 방법은 달라야만 한다. 하지만 2와 3의 배수중 6이 둘 모두에게 속한다. 그러니 문의 갯수가 5개를 넘는다면 love is open door를 출력하면 된다 #include using namespace std; int main() { int num,first; cin >> num; cin >> first; if(num > 5) cout 2021. 7. 13.
[C++] [백준 5598] 카이사르 암호 (pps 3-3) 문제 풀기 전 생각 : 평소의 나였으면 문자열을 입력받은후 반복문으로 쪼개 아스키코드 를 활용해 풀었을테지만 3-2 문제를 풀고 난 후 scanf()을 한개씩 받고 바로바로 판별해서 출력하기로 했다. #include using namespace std; int main(){ string s; cin >> s; for (size_t i = 0; i < s.length(); i++) { if(s[i] == 'A') s[i] = 'X'; else if(s[i] == 'B') s[i] = 'Y'; else if(s[i] == 'C') s[i] = 'Z'; else s[i] = s[i] - 3; } cout 2021. 7. 13.
[C++] [백준 11721] 열 개씩 끊어 출력하기 (pps 3-2) d 문제 풀기 전 생각 : 문자열을 입력받은후 char 기준으로 한글자씩 출력하며 10의 배수마다 줄바꿈을 하는 방법 #include using namespace std; int main() { string s; cin >> s; for(int i=0 ; i 2021. 7. 13.
2-10. ZigZag Conversion (LeetCode 6) 문제 풀기 전 생각 : 먼저 변수를 생성합니다 int 타입의 index를 선언합니다. char 타입의 이차원배열을 선언합니다. 변수 row 를 만듭니다. row는 0으로 초기화합니다. 마지막 변수로 level을 선언합니다. level은 column의 역할을 합니다. 와일문으로 매 반복마다 index을 1씩 증가시키고 index가 s의 길이보다 길어지거나 같아지면 반복을 멈춘다. 반복마다 row를 증가시키며 만약 row가 numRows-1 과 같아지면 반복마다 감소시킨다. 그리고 감소하다 0에 도달하면 다시 증가하게 한다. 바로 위의 칸이 비어있다면 올라가고 있는 중이니 level을 증가시키고 만약 차있다면 그대로 둔다. 로 하려고 했지만 완성하고 메모리가 생각보다 많이 들어서 생각을 조금 더 해보니 굳이.. 2021. 7. 9.