본문 바로가기

열정가득한 개발자의 이야기

(57)
PCSQL 1차 시험 후기 (feat.주의사항) 오늘 pcsql시험을 봤습니다. 이번, 플젝에 들어오면서 sql을 많이 쓴다는 말을 듣고 제 나름대로 열심히 공부했는데..ㅎㅎ... lv1을 받았어요.. 총 5문제 나왔고, 그중 3문 제정도 풀었는데 아마 제 sql문이 모든 test를 통과하지 못한 것 같네요.. 저도 잘 모르겠는데 테스트케이스가 있고 거기에 제 sql문이 얼마나 잘 커버를 치는지에 따라 점수가 매겨지는 것 같습니다.. 313점인가,.? 1000점 만점에..? 솔직히 5문제 다 풀 수 있을거라는 생각은 하지 않았어요. 제 목표는 3문제 푸는 거였습니다. 음.. 그 3문제를 풀면 레벨 2 정도는 나올 줄 알았는데.. 1,2번 문제까지는 순삭으로 풀었습니다. 두 문제에 거의 7분 걸렸나? (아! 시험 시간은 90분입니다.) 근데 3번 문제인..
JAVA Lv0 문자열의 앞의 n글자 안녕하세요! 저와의 약속을 또 지키러 왔습니다. 내년 해외 취업을 위해, 제가 생각했던 것보다 코테를 더 빠르게 더 빡세게 준비해야 하겠더라고요.. 그래서 하루에 2개가 목표였는데.. 더 많이 풀어야겠어요... (아직도,, 레벨 0이지만... 흑흑) 문제 요약 : 정해진 n숫자만큼 my_string이라는 문자열의 문자들을 자르는 것입니다. 고려할 사항 : 1. 머리 아프게 for문 쓸 필요가 없다 -> 그냥 문자열 잘라주는 java의 메서드인 substring을 쓰자! 답안 : 저의 답안은 아래와 같습니다! substring(시작, 끝글자) 0으로 설정한 이유는 문자열의 순서도 0부터 시작하기 때문입니다. 그리고 끝날 땐, -1이라고 생각하시면 돼요! 예를 들어서 a = "abcde"라는 문자열이 있다면..
프로그래머스 java lv0 n번째 원소부터 오늘도 프로그래머스 java문제를 풀어보았습니다! 여전히 레벨 0이지만,, 0도 한 번에 풀지 못하지만 올해 안에는 꼭 레벨 5까지 다 풀어볼 거예요.. 아마도..? 여전히 435문제가 남았지만.. 하루에... 2문제 푼다고 하면.. 오호... 다 못 풀 수 도있겠네요.. 그러나 제가 할 수 있을 만큼 최선을 다해서 내년 초까지 저의 최고의 실력으로 올릴 겁니다. 올해 1년 안에 정말 많은 걸 해서 제 자신을 더 좋은 환경으로 옮겨줄 거예요 무럭무럭 자나라게 하여간 각설하고 문제 풀이 해보겠습니다! 문제 간단 요약 : num_list라는 배열에서 n번째 원소부터 마지막 원소까지 배열에 담는 문제입니다. 고려할 사항 : 1. 배열 크기 ->( num_list.length - n )+ 1로 지정 _ 그 이유..
프로그래머스 PCSQL 4번 문제 안녕하세요 후.. 프로그래머스 PCSQL 4번 문제… 풀이를 가져와봤습니다. 진짜 죽는 줄 알았습니다. 문제부터 이해가 너무 어렵고, 너무 복잡했습니다. 일단 문제는 아래와 같아요. 문제 요약 : 간략하게 문제가 요약될지는 모르겠는데 해보겠습니다. 문제의 내용을 딱! 간단하게 말씀드리면 각 ID당, 동일한 제출 순서의 정답 비율을 구하면 되는 겁니다. 근데 테이블을 보시면 USER_ID 201번이 가장 밑에 또 나오는데, 이건 PROBLEM_ID가 다르기 때문에 처음 제출한 것으로 보아야 합니다. 즉, PROBLEM_ID를 기준으로 제출 순서를 매겨야 한다는 뜻입니다. 진짜.. 문제 너무 괴로워요.. 너무 헷갈려요.. 여전히 헷갈려요.. 제가 쓴 SQL이 65 LINE정도 되고,, 거의 5시간 걸렸습니다..
PCSQL 모의고사 2번 문제 PCSQL 모의 고사 2번 문제 문제 요약 : ALGORITHM_TYPE에서 가장 많이 언급된 것을 하나만 추려내는 것입니다. 그러나 만약 모두가 똑같은 수로 언급된 경우에는 글자 순으로 가장 앞에 있는 하나만 가져와야 합니다. 우선 답안 공개하겠습니다. 답안 : 이젠 왜 저렇게 썼는지 설명해드릴게요.. 우선.. 2번 문제도 그냥 프로그래머스 3단계 정도의 수준 같았습니다. 그래서 바로 풀긴 했는데 80점 받았어요ㅜㅜ 이건 어디서 틀린 지도 안 알려주니까.. 그래서 그냥 시간 없어서 80점으로 만족했습니다. 우선 이 문제에서 고려해야 할 점을 말씀드려 볼게요 1. ALGORITHM_TYPE에서 반복된 내용 중, 가장 많이 언급된 사항 추리기 -> MAX함수 사용 2. 중복된 사항이 없으면 하나만 가져오기..
프로그래머스 java lv0 카운트 업 문제 간단 요약 : start_num은 명시적으로 숫자가 시작하는 지점이고, end_num 마지막 숫자를 표현하는 것입니다. 즉, 0부터 시작하는 것이 아닌 start_num부터 시작하고 end_num까지 1씩 증가해야 하는 문제입니다. 고려할 점 : 1. 1씩 증가해야한다 -> for 문을 써서 하나씩 증가 2. for문을 줄 때, i의 범위는 무엇으로 설정해야하나 -> 처음 숫자는 0이 아닌 start_num으로 설정하고 i++을 활용하여 하나씩 증가 3. int 배열에 integer를 하나씩 추가 -> arr[i] = 1;처럼 현재 문제에서는 숫자로 표현되어 있기 때문에 쉽게 배열에 넣을 수 있음 어려웠던 점 : 처음 arrayList를 쓰지 않고 일반 배열을 썼을 때, 계속 [0,0,0,3,4,5..
프로그래머스 java lv0 길이에 따른 연산 문제 요약 : 숫자 배열의 길이가 11 이상이면 각 요소들을 더하고, 10 미만이면 곱해라 고려할 사항 : 1. 각 요소들을 돌아가면서 곱하거나 더하는 방법 -> 배열이니까 for문을 쓴다 2. 배열 길이가 11 이상인지 10 미만인지 확인하는 방법 -> if- else문을 써서 확인 3. answer이 0으로 초기화 되어있다. 곱하기 위한 방법은? -> 0에서 어떠한 수를 곱해봤자 0이다. 그러니 길이가 10 미만일 땐, 1로 초기화해줘야 한다. 답안 : 우선 제가 애먹었던 부분은 곱하는 부분입니다. answer이 0으로 초기화가 되어있어서 else 문에 그냥 answer = 1;이라고 재 초기화를 해줬었어요. 근데 계속 5가 나오더라고요. (test 배열 [1,2,3,4,5]) ex) else { a..
PCSQL모의고사 문제 1 문제 내용 간략 설명 : OLD_POSTS와 NEW_POSTS가 있는데 OLD_POSTS에는 LIKES가 없습니다. 그러나 두 개의 테이블을 붙여서 LIKES를 표시해야 하는 상황입니다. 하지만 OLD엔 LIKE가 없어서 이 점을 고려하여, 한 테이블로 만들어야 하는 비교적 간단한 문제였습니다. 답안 : 고려해야할 부분 : 두 개의 테이블을 붙이는데 중복되면 안 된다. -> UNION 사용 OLD에 LIKE가 없다 -> WITH절로 임시 테이블을 만들고 거기에 NULL값으로 채움 UNION을 한 다음, NULL값 부분을 0으로 표시 -> IFNULL() 함수를 사용해서 0으로 변환 이렇게 문제는 길지만 비교적 간단한 SQL을 작성해 봤습니다. 처음에는 WITH절을 사용하지 않고 그저 OUTER JOIN으..