본문 바로가기

분류 전체보기104

[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.
코딩으로 알바하기 3일차 (당근흔들흔들) 오늘 알바 현황 보고합니다! 어제 하던 수작업으로 후원자 등록하기 를 마무리했숩니다@! 첫번째 파일 끝내고 두번째 파일로 넘어갔숩니다@! 두번째 파일은...개판이었숩니다...^^ 정해진 양식이 없다보니 그때그때 필 오는대로 작업하셨는지 형식이 자유분방했숩니다@! 그래서 두번째 파일을 내가 원하는 형식으로 변환하는 코드를 작성하는데 String date[] = array[0].split("."); 이 코드를 사용하는데 이해할 수 없는 이런 오류가 뜨는 겁니다. 참 코드를 다시 보고 두번 보고 세번 보고 자꾸만 봐도 해결책이 보이지 않길래... 제 비밀무기 구글링을 시전했죠! 가라 구글센세!!! 그리고 1분이 채 되지 않아 문제를 찾을 수 있었습니다. String words[]=temp.split("\\.".. 2021. 7. 12.
코딩으로 알바하기 2일차 오늘은 어제 정리한 이름이 3글자 이하인 미등록 후원자님들의 명단을 정리하고 프로그램에 등록하는 작업을 했다. 등록하는 과정에서 은행명이 필요했는데 어제 만들어둔 파일에는 은행명이 없어서 어제 사용한 코드를 응용해 은행명이 포함된 파일을 새로 만들었다. 그리고 입력을 시작했다. 총 620명 가까이 되었고 코딩으로 어찌 할 수 없는 생 노가다 작업이었기에 너무 지쳤다. 그래서 치트키를 사용하기로 마음 먹었다. 바로 여동생을 불렀다. 동생아 이리 와봐 혹시 부자가 되고 싶지 않니? 이 오리비가 돈을 벌게 해줄게 하면서 꼬드겼는데... 이 너무 착한 여동생이 그냥 대가없이 도와준다고 했다... 참 못난 오빠라 미안하다... 그래서 동생이랑 나랑 같이 작업을 해서 620명 중에 400명 가까이 작업을 마무리 했.. 2021. 7. 11.
3-1. Student Attendance Record I (LeetCode 551) 문제 풀기 전 생각 : 입력 받은 s를 에 A가 몇개 있는지 카운팅해보고 연속해서 L 이 3번 이상 등장 한 적이 있는지 판별하는 방법으로 문자열을 쪼개는 방법을 사용했다. 반복문 안에 조건문으로 판별했는데 코드를 다 짜고 보니 L의 갯수를 세는 것보다 LLL아 문자열 안에 있는지 판별하면 더 효율적일거 같다는 생각을 했습니다. 그래서 다시 풀었죠. class Solution { public: bool checkRecord(string s) { int late = 0; int absent = 0; for(int i=0 ; i= 3) return false; } return (absent < 2); } }; //1차 풀이 여기서 개선 할 수 있는 방법을 떠올림 class Solution { public: .. 2021. 7. 10.
코딩으로 알바하기 1일차 방학동안 알바보단 코딩 실력 향상에 더 가치를 두고 장기캠프 두 개와 방학 프로젝트에 집중하기로 이번 방학이 시작할 때 다짐 했었어 그러다 보니 알바를 할 시간도 체력도 의지도 없어 거지로 방학을 보내야 하는 상황이 온 거야 걱정 반 어떻게든 되겠지 아잉몰라 반 인 심정으로 매일 코딩이랑 동거하던중 부모님께서 나를 급하게 부르셨어 그러곤 나에게 전화를 바꿔주셨는데 부모님의 소속 단체에서 일하시는 간사님이셨어 간사님은 나에게 알바를 하겠냐고 물으시곤 집에서 혼자 할 수 있는 일이라고 설명해주셨어 나는 옳거니~~ 하고 바로 감사합니다 를 시전하고 하겠다고 했지 그런데 무슨 일인가 봤더니 엑셀 파일에 있는 명단을 가지고 동명이인이 있나 확인 하고 회원 명단이랑 비교해 회원번호를 입력하는 일인거야 그러자마자 내.. 2021. 7. 10.
3. 맵 이동 및 메인메뉴의 버튼 기능 구현 포스팅 쓰는건 귀찮지만 오늘도 힘차게 써봅시다! 어제에 이어 오늘도 방학 프로젝트를 진행하려고 딱 켜고 새로운 씬을 만들었어요. 그런데 새로 만들어서 인지 prefabs 에 잘못 넣어서 인지 오류가 나서 중간 중간에 변수명이 사라지거나 알 수 없는 오류들이 나기 시작했어요. 처음에는 버튼을 눌러도 반응을 하지 않아 구글링을 해보니 이 친구가 추가가 되어있지 않아서 였네요. 이 너무 귀여운 ^^ 친구를 추가해주고 버튼을 눌렀더니 버튼은 눌리는 애니메이션은 보이는데 캐릭터가 움직이지 않는거에요. 그래서 내장 변수들 좀 만져주고 하니 캐릭터가 움직이기 시작했어요 다행이죠. 그리고 이제 텔레포트 라는 오브젝트랑 겹친 후 대화를 누르면 맵을 이동하는 기능을 구현하기 시작했어요 근데 이 친구도 겹쳤는데도 신호를 안.. 2021. 7. 9.
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.
2-9. Repeated String Match (LeetCode 686) 문제 풀기 전 생각 : while 문으로 반복하며 스트링 타입의 변수 s를 추가해 s에 a를 계속 더하며 s에 b가 포함되어 있는지 판별하는 식으로 문제를 풀려고 했다. 반복의 종료조건은 s가 b보다 세배 이상 커지면 으로 하려고 했지만 처음부터 세배 이상 큰 a가 들어온다면 위에서 생각한 종료조건은 완벽한 종료조건이 아니다. 이 문제를 해결하려 a가 b보다 크다면 a에 b가 포함되는지 판변하고 한번만 더 판별하도록 했다. 그 후에도 포함되지 않는다면 그건 포함될 수 없는 케이스 라고 판별하도록 했다. 제출을 하자 Time Limit Exceeded 가 떴다. 그 이유를 보니 b가 굉장히 길었으며 a는 단 한글자였고 심지어 포함될 수 없는 조건이었기 때문이었다. 그래서 만약 a가 한글자라면 b에 a를 제.. 2021. 7. 8.