전체 글(64)
-
정보처리기사 실기 시험 주의사항(볼펜!)
이번에는 평소와 다르게 실기시험 후기를 들고왔습니다.저는 24년 2회 시험지를 보자마자 "응? 내가 모르는게 없는데?" 라고 생각해서 당연히 합격의 예상했고,시험장에는 컴싸, 볼펜 이렇게 들고 갔습니다. 참고로 컴싸는 안쓰는데 왜 가져오라는지 의문이었습니다.기사퍼스트에서 가답안이 나왔을때 채점한 결과로는 80점 아주 무난하죠?그만큼 준비도 열심히했어요.하지만 결과는 총점, 득점 0점!! 불 합 격 .. 하하하ㅏ하 맷돌 손잡이를 뭐라고 하는지 알아요? ... 에효..와우 왜 0점이 나왔을까? 전화를 했는데 국민신문고 민원신청 안내를 받았고, 민원 신청결과는 5일 후 답변이 왔습니다.제가 0점이 나온 이유가 연필을 사용했다는 것!하지만 연필을 안들고갔는데 무슨일이지??설마.. 볼펜이 지워지나???정답~~!!..
2024.09.13 -
Softeer_LV3_나무섭지
문제 링크 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 문제 요약그림에서 사람은 남우라는 주인공입니다.남우는 탈출구로 탈출해야하고, 유령과 만나면 안됩니다.남우는 벽으로는 이동할 수 없어요.유령은 벽도 이동 가능합니다.그리고 현재자리에 머무를 수 있고 상하좌우로도 이동가능합니다.풀이이번 문제는 시간복잡도를 딱히 신경안써도 되는 문제였고, 방문처리에서 실수하면 메모리 초과를 발생할 수 있다고 생각했다.n,m은 최대 1000, bfs를 5방향으로 해서 O(n*m*5) == 5백만 시간복잡도로 풀이 가능 그리고, 방문처리할 때 얼만큼 메모리를 사용하는지 확인해봤습니다.v[1000][1000][5]가 최대일때, boolean타입은 1비트인데 배열은 1바이트라고합니다.그래서 1바이트 *5..
2024.09.09 -
[소프티어]지도 자동 구축
링크문제 풀이처음에는 각 반복구간마다 전체 점의 수가 어떻게 증가하는지 고민해보았고식으로 어떻게 해야하나~~ 고민하다가 한줄에있는 점의 수에 제곱하면답나오는게 떠올랐고한줄에 점이 증가하는 패턴을 n과 연관지어 생각해보니2^n만큼 증가하는걸 알았고 2^+1 이게 한줄에 점의 개수라는 결론이났다.코드import java.io.*;import java.util.*;import java.lang.Math;/** 한 줄에 몇개의 점이 찍히는지 구해보려는데 n과 관련해서 생각해봤다 점의 개수가 2의 n승만큼 증가하고 증가한 수에 1을 더해주면 한줄에 점의 개수가 되는것을 확인했다. 답은 한줄에 있는 점의 개수를 제곱한 것이다. **/public class Main { public static void mai..
2024.09.07 -
[소프티어] 장애물 인식 프로그
링크문제 풀이 bfs다른 bfs와 다른점은 방문체크 없이 가능하다는 것.map을 순회하면서 장매물(1)을 찾으면 0으로 변경하여 방문체크와 같은 효과를 얻는다.import java.io.*;import java.util.*;public class Main { static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; static int n, cnt; static int[][] map; static PriorityQueue pq = new PriorityQueue();// 블록의 수를 오름차순으로 저장할 우선순위 큐. public static void main(String[] args) throws IOException { ..
2024.09.07 -
[백준]1780_종이의 개수
문제 링크9개로 나누는 과정코드def dfs(row, col, jump): cur_paper = paper[row][col] for r in range(row, row + jump): for c in range(col, col + jump): if cur_paper != paper[r][c]: # 다음 종이랑 시작 종이가 다르면. # 9등분 해줘야한다. j = jump // 3 # 각각 범위를 정해서 호출한다. dfs(row, col, j) # 1~3번째 줄 1~3 까지 dfs(row, col + j, j) # 1~3번째 줄..
2024.09.07 -
[백준]수들의 합2
링크N, M = map(int, input().split())nums = list(map(int, input().split()))end = 0 # 끝 포인터ans = 0 # 경우의 수 기록temp = 0 # 현재값for start in range(N):# 현재 값이 목표보다 작고, 포인터 인덱스가 범위 내인 동안.. while temp 코드 설명길이 10목표 5입력 1 2 3 4 2 5 3 1 1 2동작첫 while문에서 조건에 맞는 동안temp += 1 2 3 이 세 수를 더해준다.if 문에서 답인지 확인했는데 temp가 6이라서 그냥 넘어간다.temp -= nums[start] 이 값은 1임.(start == 0인 상황)계산 후 temp == 5이다.그래서 while문을 무시하고 바로 if..
2024.09.07