(a) 5x5 알파벳 격자1

U R L P M
X P R E T
G I A E T
X T N Z Y
X O Q R S

이러한 알파벳 격자를 이용하여 상하좌우/대각선으로 인접한 칸들의 글자를 이어서 단어를 찾아내는 게임

 

 

 

(b)단어 1 .PRETIY

. . . . .
. P R . T
. . . E T
. . . . Y
. . . . .

(c)단어 2 .GIRLE

. . L . .
. . R . .
G I . . .
. . . . .
. . . . .

(d)단어 3 .REPEAT

. . . P .
. . R E .
. . A . .
. T . . .
. . . . .

(e) 5x5 알파벳 격자2

N N N N S
N E E E N
N E Y E N
N E E E N
N N N N N

(e)에서 YES를 찾고 싶을땐? 여기서 YES로 연결되는 E는 오른쪽 위 칸 하나.

Y에서 인접한 E만 살펴보면 어느 E를 따라가야 답을 찾을 수 있는 지 알 수 없으므로 완전탐색을 이용함.

const int dx[8] = { -1, -1, -1 , 1, 1, 1, 0, 0};
const int dy[8] = { -1, 0, 1, -1, 0, 1, -1, 1);

bool hasWord(int y, int x, const string& word){
	// 시작 위치가 범위 밖이면 무조건 실패
    if(!inRange(y, x)) return false;
    // 첫 글자가 일치하지 않으면 실패
    if(board[y][x] != word[0]) return false;
    //단어 길이가 1이면 성공
    if(word.size() == 1) return true;
    //인접한 여덟 칸을 검사
    for(int direction = 0; direction < 8; ++direction){
    	int nextY = y + dy[direction], nextX = x+ dx[direction];
        //다음 칸이 범위 안에 있는지, 첫 글자는 일치하는지를 확인할 필요가 없음
        if(hasWord(nextY, nextX, word.substr(1)))
        	return true;
     }
     return false;
}

random 함수 사용 시 유추 가능한 범위(0~1)내 숫자가 생성되므로 random 함수 사용제한을 권고함.

 

<random함수 사용>

<html>
<header>
</header>
<body>
<script>
const rand1 = Math.random();
document.write(rand1 + '<br>');
</script>
</body>
</html>

 

 

<random함수 미사용코드>

<html>
<header>
</header>
<body>
<script>
var array = new Uint32Array(10);
window.crypto.getRandomValues(array);
document.write("Your lucky numbers:");
for (var i = 0; i < array.length; i++) {
  document.write(array[i]);
}
</script>
</body>
</html>​

 

 

일반적으로 seed 값을 이용한 코드 사용을 권고하고 있음

function randomInt(from, to) 
{
    return Math.floor((Math.random()*(to - from + 1)) + from);
}

자바 스크립트의 경우 난수 발생에 있어서 씨앗값(seed)을 주지 않아도 처음 시작시 다른 난수값을 생성해 줌.

'Language' 카테고리의 다른 글

[vb] treelistView  (0) 2020.03.11
[vb] treelistview 중복 값 넣기  (0) 2020.03.09

매크로 전 시트 구성

 

Sub Cell_copy()

Sheets(1).Activate
Range("B2").Select

rcount = Sheets(1).Range("B" & Rows.Count).End(xlUp).Row - 1
For i = 1 To rcount
Sheets(2).Activate
Range("B1").Select
Selection.Copy
ActiveCell.Offset(0, i).Select
Sheets(2).Paste

Sheets(2).Activate
ActiveCell.Value = Sheets(1).Cells(i + 1, 2).Value
Sheets(1).Activate
Next i

Application.CutCopyMode = False
End Sub

 

매크로 적용 후

셀 값에서 특정 문자열에 해당하는 조건 검색 시

여러개의 문자열을 확인해야하는 경우

 

  If (InStr(1, check_str, "A", 0) Or InStr(1, check_str, "B", 0) Or InStr(1, check_str, "C", 0)) = 0 Then
  
  // 실행할 코드
  
  End If

 

InStr(1, check_str, "A", 0)=0 Or InStr(1, check_str, "B", 0)=0 Or InStr(1, check_str, "C", 0)=0

이렇게 사용하니까 조건문이 제대로 동작하지 않았다...

 

위 코드 사용 후 해결할 수 있었다!

 

파이썬 version 2.7.13 과 version 3.7.3을 노트북에 동시에 올려서 사용중이라서 

명령어가 python3, pip3로 이미지에 올라가 있습니다!

 

파이썬 버전 1개만 사용중이시면 "pip install beatifulsoup4" 명령어를 사용하시면 됩니다.

 

cmd 창에서 python을 실행한 후 

import bs4

bs

명령어를 이용하여 정상적으로 beatifulsoup4가 설치되었는지 확인

 

Beatifulsoup4 설치 완료~~~

 

 

 

 

 

'Language > Python' 카테고리의 다른 글

[Python] 크롤링 기초 스크레이핑  (0) 2021.04.12
[Python] 딕셔너리 관련 함수들  (0) 2020.03.02
[Python] 딕셔너리 자료형 주의점  (0) 2020.03.02
[Python] 튜플  (0) 2020.01.21
[Python] 리스트 생성하기  (0) 2020.01.21

 

Sub cell_Path()

	Dim file_path as String
    
    filePath = Sheets("Sheet1").Range("A2")
    
End Sub

 

엑셀 UI설계

간만에 vba하려니까 헷갈린다...

'Language > VBA' 카테고리의 다른 글

[VBA] 다른 시트 셀 복사  (0) 2021.05.17
[VBA] 셀에서 문자열 검색  (0) 2021.04.27
[VBA] VBA 코딩 화면 글자 바꾸기  (0) 2020.01.17
  public Form1()
        {
            InitializeComponent();
            DataTable people = new DataTable();
            people.Columns.Add("id");
            people.Columns.Add("Name");

            people.Rows.Add(1, "John Smith");
            people.Rows.Add(2, "Jane Doe");
            people.Rows.Add(3, "Foo Bar");
            people.Rows.Add(4, "Justin Time");
            people.Rows.Add(5, "Imma Mann");

            DataTable table = new DataTable();
            table.Columns.Add("PeopleName");
            table.Columns.Add("PeopleCallPhone");

            table.Rows.Add("John Smith","123-456-7890");
            table.Rows.Add("Jane Doe", "234-567-8900");
            table.Rows.Add("Foo Bar", "345-678-9000");
            table.Rows.Add("Justin Time", "456-789-0000");
            table.Rows.Add("Imma Mann", "567-890-0000");


            var col = new DataGridViewComboBoxColumn();
            col.Name = "PeopleName";
            col.DataPropertyName = "PeopleName";
            col.HeaderText = "Name";
            col.DataSource = people;
            col.DisplayMember = "Name";
            col.ValueMember = "Name";

            this.dataGridView1.Columns.Add(col);
            this.dataGridView1.DataSource = table;
            this.dataGridView1.Columns[1].HeaderText = "Phone";
        }

'Language > C#' 카테고리의 다른 글

Dictionary 연습  (0) 2020.02.12
[C#] 문자열 엔터처리하기  (0) 2020.02.12
[C#] LINQ 연습 2일  (0) 2020.02.03
[c#]treelistview 노드코드  (0) 2020.02.03
[C#] Datagridview 마지막 빈 행 지우기  (1) 2020.01.31

+ Recent posts