잡다한 배똥월드

728x90

 

 

 

 

 

 

 

 

 

컨트롤 선택 후 원하는 위치에 드래스해서 만들면 하위 폼 마법사가 열림

중요한 포인트는 [컨트롤 마법사 사용]이 활성화 되어 있어야 함!!

 

 

 

 

728x90
728x90
코딩 테스트 풀이 체크리스트
2시간 내에 풀었는가? X
본인의 실력으로 풀었는가? X

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

 

import java.util.*;
class Solution {
    int row, col;
    Deque<Integer> side1, side2;
    Deque<Deque<Integer>> inside;
    public int[][] solution(int[][] rc, String[] operations) {
        row = rc.length;
        col = rc[0].length;
        int[][] answer = new int[row][col];
        
        side1 = new LinkedList<>();
        side2 = new LinkedList<>();
        inside = new LinkedList<>();
        
        for (int i = 0; i < row; i++) {
            inside.addLast(new LinkedList<>());
            for (int j = 0; j < col; j++) {
                if (j == 0) side1.addLast(rc[i][j]);
                else if (j == col-1) side2.addLast(rc[i][j]);
                else inside.peekLast().addLast(rc[i][j]);
            }
        }
        
        for (int i = 0; i < operations.length; i++) {
            if (operations[i].equals("Rotate")) {
                rotate();
            } else {
                shiftRow();
            }
        }
        
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < col; j++) {
                if (j == 0) answer[i][j] = side1.removeFirst();
                else if (j == col-1) answer[i][j] = side2.removeFirst();
                else answer[i][j] = inside.peekFirst().removeFirst();
            }
            inside.removeFirst();
        }
        
        return answer;
    }
    public void shiftRow() {
        side1.addFirst(side1.removeLast());
        side2.addFirst(side2.removeLast());
        inside.addFirst(inside.removeLast());
    }
    
    public void rotate() {
        inside.peekFirst().addFirst(side1.removeFirst());
        side2.addFirst(inside.peekFirst().removeLast());
        inside.peekLast().addLast(side2.removeLast());
        side1.addLast(inside.peekLast().removeFirst());
    }
}

 

 

 

 

 

참고 링크

 

 

 

[프로그래머스,Java] Level4: 행렬과 연산

https://school.programmers.co.kr/learn/courses/30/lessons/118670 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘..

taehoung0102.tistory.com

 

 

 

 

 

 

728x90
728x90
코딩 테스트 풀이 체크리스트
2시간 내에 풀었는가? O
본인의 실력으로 풀었는가? O

 

 

10816번: 숫자 카드 2

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

 

 

 

 

 

import java.io.*;
import java.util.HashMap;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		//가지고 있는 숫자카드를 정리할 해시맵
		HashMap<String, Integer> map = new HashMap<>();
		
		//해시맵에 넣는 과정
		//getOrDefault는 해시맵에 키에 대한 값이 있으면 그것을 리턴하고, 아니면 default값으로 설정해놓은 값을 리턴함
		int n = Integer.parseInt(br.readLine());
		String[] nums = br.readLine().split(" ");
		for (int i = 0; i < n; i++) {
			map.put(nums[i], map.getOrDefault(nums[i], 0)+1);
		}
		
		int t = Integer.parseInt(br.readLine());
		String[] test = br.readLine().split(" ");
		for (int i = 0; i < t; i++) {
			bw.write(map.getOrDefault(test[i], 0) + " ");
		}
		
		bw.flush();
		bw.close();
	}
}

 

문제 결과 메모리 시간 코드 길이
10816 맞았습니다!! 167456 KB 1144 ms 722 B

 

 

 

 

 

 

728x90
728x90
코딩 테스트 풀이 체크리스트
2시간 내에 풀었는가? O
본인의 실력으로 풀었는가? O

 

 

10799번: 쇠막대기

여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저

www.acmicpc.net

 

 

 

 

 

import java.io.*;
import java.util.*;
public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		//괄호 줄 입력 받아서 char 배열로 변환
		//String 배열을 쓰지 않은 이유는 '('냐 ')'냐 비교할 때 
		char[] pipe = br.readLine().toCharArray();
		//괄호 문제여서 그냥 스택을 썼지만 그냥 int 써도 괜찮음
		Stack<Character> s = new Stack<>();
		//result는 쇠파이프 조각 개수
		int result = 0;
		for (int i = 0; i < pipe.length-1; i++) {
			만약 pipe[i]가 열린 괄호이고,
			if (pipe[i] == '(') {
				//만약 pipe[i+1]이 닫힌 괄호면
				if (pipe[i+1] == ')') {
					자르는 타이밍이기 때문에 스택의 개수 더해주고 i+1은 체크할 필요 없어서 i++
					result += s.size();
					i++;
				} else { //닫힌 괄호가 아니면 파이프의 시작 부분이기 때문에 스택에 추가
					s.add('(');
				}
			} else { //닫힌 괄호면 스택에서 하나 빼주고 개수 하나 더해줘야 함
				s.pop();
				result++;
			}
		}
		//마지막 문자열은 체크하지 않기 때문에 1 더해줘야함
		System.out.println(result+1);
	}
}

 

 

문제 결과 메모리 시간 코드 길이
10799 맞았습니다!! 16440 KB 176 ms 555 B

 

 

 

 

 

 

728x90
728x90

 

원격 프로시저를 호출하지 못했습니다 예외가 발생한 hresult: 0x800706be) 오류 발생 시

시나공의 묻고 답하기? 를 계속 보니까 하는 말로는 엑셀을 삭제하고 다시 설치하라는 등, 윈도우 쏼라쏼라 하는데, 내가 보기엔 그냥 튕기는 것 같음

그래서 찾은게 아직 베타 버전이긴 하지만 온라인 실기 채점 프로그램이 있음

이걸로 이용하면 기록은 남지만 괜찮음

 

 

 

https://sinagong.gilbut.co.kr/it/grade/grade_exam

 

시나공 IT

컴퓨터활용능력, 정보처리 등 IT 자격증 전문 출판, 시나공 IT

sinagong.gilbut.co.kr

 

 

 

 

728x90
728x90

 

매크로 설정을 다시 해주어야 함

 

[파일] > [옵션] 

 

 

 

 

 

 

[옵션] > [보안  센터] > [보안 센터 설정]

 

 

 

 

 

[매크로 설정] 을 들어가서 화면대로 체크하기

 

 

 

 

 

+ 그리고 채점 프로그램을 켤 때 꼭 관리자 모드로 켜야 합니다!!!

 

 

 

 

 

728x90
728x90

📌 문법

MsgBox(Prompt, [Buttons As VbMsgBoxStyle = vbOKOnly], [Title], [HelpFile], [Context]) As VbMsgBoxResult

필수 입력 사항

Prompt

  • 대화 상자에 메시지로 표시할 문자열
  • 프롬프트의 최대 길이는 사용된 문자의 너비에 따라 약 1024자
  • 프롬프트가 둘 이상의 줄로 구성된 경우 캐리지 리턴 문자(Chr(13)), 줄 바꿈 문자(Chr(10)) 또는 캐리지 리턴 + 줄 바꿈 문자 조합(Chr(13) & Chr (10)) 각 줄 사이.

 

선택 입력 사항

Buttons As VbMsgBoxStyle = vbOKOnly

  • 표시할 단추의 수와 유형, 사용할 아이콘 스타일, 기본 단추의 ID 및 메시지 상자의 양식을 지정하는 값의 합계인 숫자 표현식
  • 생략하면 버튼의 기본값은 0입니다.

Title

  • 대화 상자의 제목 표시줄에 표시할 문자열
  • 생략되면 프로젝트 이름 (섹션 4.1 ) 이 제목 표시줄에 배치됨

HelpFile

  • 대화 상자에 상황에 맞는 도움말을 제공하는 데 사용할 도움말 파일을 식별하는 문자열
  • HelpFile이 제공되면 Context도 제공되어야 함

Context

  • 도움말 작성자가 적절한 도움말 항목에 할당한 도움말 Context 번호
  • Context가 제공되면 HelpFile도 제공되어야 함

 

728x90
728x90
코딩 테스트 풀이 체크리스트
2시간 내에 풀었는가? O
본인의 실력으로 풀었는가? O

 

 

10773번: 제로

첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경

www.acmicpc.net

 

 

 

 

 

import java.io.*;
import java.util.*;
public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		//입력 받을 숫자 개수
		int n = Integer.parseInt(br.readLine());
		//출력할 숫자 합계
		int result = 0;
	
		//스택으로 가장 최근 입력 받은 숫자 파악하기 
		Stack<Integer> s = new Stack<>();
		
		for (int i = 0; i < n; i++) {
			int num = Integer.parseInt(br.readLine());
			//만약 num이 0이면 스택 최상위 숫자 제거
			if (num == 0) {
				s.pop();
			} else { //0이 아니면 스택에 추가
				s.add(num);
			}
		}
		//스택의 숫자를 하나씩 꺼내면서 result에 더해주기
		while (!s.isEmpty()) {
			result += s.pop();
		}
		
		System.out.println(result);
	}
}

 

문제 결과 메모리 시간 코드 길이
10773 맞았습니다!! 24032 KB 244 ms 539 B

 

 

 

 

 

 

728x90

+ Recent posts